argos/dmp-admin/src/app/services/login/token.service.ts

108 lines
2.0 KiB
TypeScript
Raw Normal View History

2017-10-17 10:17:24 +02:00
import { Injectable, Inject} from '@angular/core';
2017-10-16 17:05:25 +02:00
import { Observable } from 'rxjs';
import 'rxjs/add/operator/map';
2017-10-17 10:17:24 +02:00
import { DOCUMENT } from '@angular/platform-browser';
2017-10-16 17:05:25 +02:00
2017-10-17 10:17:24 +02:00
declare var jQuery : any;
2017-10-16 17:05:25 +02:00
2017-10-27 09:48:33 +02:00
import '../../../assets/custom.js';
declare function sign_out_google(): any;
2017-10-16 17:05:25 +02:00
@Injectable()
export class TokenService {
2018-02-01 15:04:36 +01:00
constructor (@Inject(DOCUMENT) private document) {
2017-10-17 10:17:24 +02:00
var csrfToken : string = jQuery(document).find('meta[name="csrf-token"]').attr('content');
this.setCSRFToken(csrfToken);
2017-10-16 17:05:25 +02:00
}
2017-10-17 10:17:24 +02:00
getCSRFToken() : string{
2018-02-01 15:04:36 +01:00
return localStorage.retrieve('csrf-token');
2017-10-17 10:17:24 +02:00
}
setCSRFToken(csrfToken : string){
2018-02-01 15:04:36 +01:00
localStorage.store('csrf-token',csrfToken);
2017-10-17 10:17:24 +02:00
}
2017-10-16 17:05:25 +02:00
getProvider() : TokenProvider {
2018-02-01 15:04:36 +01:00
return localStorage.retrieve('provider');
2017-10-16 17:05:25 +02:00
}
setProvider(provider : TokenProvider){
2018-02-01 15:04:36 +01:00
localStorage.store('provider',provider);
2017-10-16 17:05:25 +02:00
}
getToken() : string{
2018-02-01 15:04:36 +01:00
return localStorage.retrieve('token');
2017-10-16 17:05:25 +02:00
}
setToken(token : string){
2018-02-01 15:04:36 +01:00
localStorage.store('token',token);
2017-10-16 17:05:25 +02:00
}
isLoggedIn(){
2018-02-01 15:04:36 +01:00
return localStorage.retrieve('loggedIn');
2017-10-16 17:05:25 +02:00
}
setLoggedIn(boolStatus){
2018-02-01 15:04:36 +01:00
localStorage.store('loggedIn',boolStatus);
2017-10-16 17:05:25 +02:00
}
getEmail(){
2018-02-01 15:04:36 +01:00
return localStorage.retrieve('email');
2017-10-16 17:05:25 +02:00
}
setEmail(email){
2018-02-01 15:04:36 +01:00
localStorage.store('email',email);
2017-10-16 17:05:25 +02:00
}
getUsername(){
2018-02-01 15:04:36 +01:00
return localStorage.retrieve('username');
2017-10-16 17:05:25 +02:00
}
setUsername(username){
2018-02-01 15:04:36 +01:00
localStorage.store('username',username);
2017-10-16 17:05:25 +02:00
}
2017-10-27 09:48:33 +02:00
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);
}
2017-10-16 17:05:25 +02:00
}
export enum TokenProvider {
native,
google
}