108 lines
2.0 KiB
TypeScript
108 lines
2.0 KiB
TypeScript
import { Injectable, Inject} from '@angular/core';
|
|
import { Observable } from 'rxjs';
|
|
import 'rxjs/add/operator/map';
|
|
import { DOCUMENT } from '@angular/platform-browser';
|
|
|
|
declare var jQuery : any;
|
|
|
|
import '../../../assets/custom.js';
|
|
declare function sign_out_google(): any;
|
|
|
|
@Injectable()
|
|
export class TokenService {
|
|
|
|
|
|
constructor (@Inject(DOCUMENT) private document) {
|
|
var csrfToken : string = jQuery(document).find('meta[name="csrf-token"]').attr('content');
|
|
this.setCSRFToken(csrfToken);
|
|
}
|
|
|
|
|
|
getCSRFToken() : string{
|
|
return localStorage.retrieve('csrf-token');
|
|
}
|
|
|
|
setCSRFToken(csrfToken : string){
|
|
localStorage.store('csrf-token',csrfToken);
|
|
}
|
|
|
|
|
|
getProvider() : TokenProvider {
|
|
return localStorage.retrieve('provider');
|
|
}
|
|
|
|
setProvider(provider : TokenProvider){
|
|
localStorage.store('provider',provider);
|
|
}
|
|
|
|
getToken() : string{
|
|
return localStorage.retrieve('token');
|
|
}
|
|
|
|
setToken(token : string){
|
|
localStorage.store('token',token);
|
|
}
|
|
|
|
isLoggedIn(){
|
|
return localStorage.retrieve('loggedIn');
|
|
}
|
|
|
|
setLoggedIn(boolStatus){
|
|
localStorage.store('loggedIn',boolStatus);
|
|
}
|
|
|
|
getEmail(){
|
|
return localStorage.retrieve('email');
|
|
}
|
|
|
|
setEmail(email){
|
|
localStorage.store('email',email);
|
|
}
|
|
|
|
getUsername(){
|
|
return localStorage.retrieve('username');
|
|
}
|
|
|
|
setUsername(username){
|
|
localStorage.store('username',username);
|
|
}
|
|
|
|
|
|
login(token: string, provider: TokenProvider, username: string, email: string){
|
|
|
|
this.setLoggedIn(true);
|
|
this.setToken(token);
|
|
this.setProvider(provider);
|
|
this.setUsername(username);
|
|
this.setEmail(email);
|
|
|
|
window.location.reload();
|
|
|
|
}
|
|
|
|
|
|
logout(){
|
|
//set the log out actions here
|
|
this.setLoggedIn(false);
|
|
this.setEmail(null);
|
|
this.setUsername(null);
|
|
this.setToken(null);
|
|
|
|
if(this.getProvider() == TokenProvider.google){
|
|
sign_out_google();
|
|
}
|
|
|
|
this.setProvider(null);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
export enum TokenProvider {
|
|
native,
|
|
google
|
|
}
|
|
|
|
|
|
|