78 lines
1.5 KiB
TypeScript
78 lines
1.5 KiB
TypeScript
import { Injectable, Inject} from '@angular/core';
|
|
import { Observable } from 'rxjs';
|
|
import {LocalStorageService} from 'ngx-webstorage';
|
|
import 'rxjs/add/operator/map';
|
|
import { DOCUMENT } from '@angular/platform-browser';
|
|
|
|
declare var jQuery : any;
|
|
|
|
@Injectable()
|
|
export class TokenService {
|
|
|
|
|
|
constructor (private storage : LocalStorageService, @Inject(DOCUMENT) private document) {
|
|
var csrfToken : string = jQuery(document).find('meta[name="csrf-token"]').attr('content');
|
|
this.setCSRFToken(csrfToken);
|
|
}
|
|
|
|
|
|
getCSRFToken() : string{
|
|
return this.storage.retrieve('csrf-token');
|
|
}
|
|
|
|
setCSRFToken(csrfToken : string){
|
|
this.storage.store('csrf-token',csrfToken);
|
|
}
|
|
|
|
|
|
getProvider() : TokenProvider {
|
|
return this.storage.retrieve('provider');
|
|
}
|
|
|
|
setProvider(provider : TokenProvider){
|
|
this.storage.store('provider',provider);
|
|
}
|
|
|
|
getToken() : string{
|
|
return this.storage.retrieve('token');
|
|
}
|
|
|
|
setToken(token : string){
|
|
this.storage.store('token',token);
|
|
}
|
|
|
|
isLoggedIn(){
|
|
return this.storage.retrieve('loggedIn');
|
|
}
|
|
|
|
setLoggedIn(boolStatus){
|
|
this.storage.store('loggedIn',boolStatus);
|
|
}
|
|
|
|
getEmail(){
|
|
return this.storage.retrieve('email');
|
|
}
|
|
|
|
setEmail(email){
|
|
this.storage.store('email',email);
|
|
}
|
|
|
|
getUsername(){
|
|
return this.storage.retrieve('username');
|
|
}
|
|
|
|
setUsername(username){
|
|
this.storage.store('username',username);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
export enum TokenProvider {
|
|
native,
|
|
google
|
|
}
|
|
|
|
|
|
|