45 lines
949 B
JavaScript
45 lines
949 B
JavaScript
import LocalStorageInterface from './local-storage-interface'
|
|
|
|
export default class Authentication{
|
|
|
|
|
|
/* (1) Constructs an Authentication object
|
|
*
|
|
*
|
|
---------------------------------------------------------*/
|
|
constructor(){
|
|
|
|
/* (1) Default localStorage Interface */
|
|
this.lsi = new LocalStorageInterface('__auth__', 15*60);
|
|
|
|
/* (2) Update token */
|
|
if( this.token !== null && this.user !== null ){
|
|
this.lsi.push('token', this.token);
|
|
this.lsi.push('user', this.user);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
/* (2) facade
|
|
*
|
|
---------------------------------------------------------*/
|
|
// TOKEN
|
|
get token(){
|
|
let tok = this.lsi.fetch('token');
|
|
|
|
// redirect if on 'auth' page
|
|
if( tok === null && gs.get.authed )
|
|
document.location = '';
|
|
|
|
return tok;
|
|
}
|
|
|
|
set token(_token){ return this.lsi.push('token', _token); }
|
|
|
|
// USER DATA
|
|
get user(){ return this.lsi.fetch('user'); }
|
|
set user(_user){ return this.lsi.push('user', _user); }
|
|
|
|
} |