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

112 lines
2.3 KiB
TypeScript
Raw Normal View History

2017-10-17 10:17:24 +02:00
import { Injectable, Inject} from '@angular/core';
import { Observable } from 'rxjs';
import {LocalStorageService} from 'ngx-webstorage';
2017-11-13 18:19:10 +01:00
import {Router} from '@angular/router';
2017-10-17 10:17:24 +02:00
import 'rxjs/add/operator/map';
import { DOCUMENT } from '@angular/platform-browser';
2017-11-01 18:18:27 +01:00
2017-10-17 10:17:24 +02:00
declare var jQuery : any;
2017-11-01 18:18:27 +01:00
import '../../../assets/custom.js';
declare function sign_out_google(): any;
2017-10-17 10:17:24 +02:00
@Injectable()
export class TokenService {
2017-11-13 18:19:10 +01:00
constructor (private storage : LocalStorageService, @Inject(DOCUMENT) private document, private router : Router) {
//var csrfToken : string = jQuery(document).find('meta[name="csrf-token"]').attr('content');
//this.setCSRFToken(csrfToken);
2017-10-17 10:17:24 +02:00
}
/*
2017-10-17 10:17:24 +02:00
getCSRFToken() : string{
return this.storage.retrieve('csrf-token');
}
setCSRFToken(csrfToken : string){
this.storage.store('csrf-token',csrfToken);
}
*/
2017-10-17 10:17:24 +02:00
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);
}
2017-11-01 18:18:27 +01: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(){
2017-11-13 17:19:43 +01:00
debugger;
2017-11-01 18:18:27 +01:00
//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-11-10 16:58:34 +01:00
2017-11-13 18:19:10 +01:00
this.router.navigate(['/login'], { queryParams: { /*returnUrl: this.state.url*/ }});
//window.location.reload();
2017-11-01 18:18:27 +01:00
}
2017-10-17 10:17:24 +02:00
}
export enum TokenProvider {
native,
google
}