Newer
Older
import { Injectable } from '@angular/core';
import { HttpClient } from '@angular/common/http';
import { Router } from '@angular/router';
import { LocalStorageService } from './local-storage.service';
import { NotificationService } from '../app/notification.service';
import { HeaderService } from './header.service';
@Injectable({
providedIn: 'root'
})
export class AuthService {
authMode: string = 'default';
changeKey: boolean = false;
user: any = {};
constructor(public http: HttpClient,
private router: Router,
private headerService: HeaderService,
private notify: NotificationService,
private localStorage: LocalStorageService) { }
getToken() {
return this.localStorage.get('MaarchCourrierToken');
}
getUrl(id: number) {
return this.localStorage.get(`MaarchCourrierUrl_${id}`);
}
setUrl(url: string) {
this.localStorage.save(`MaarchCourrierUrl_${JSON.parse(atob(this.getToken().split('.')[1])).user.id}`, url);
}
cleanUrl(id: number) {
return this.localStorage.remove(`MaarchCourrierUrl_${id}`);
}
setToken(token: string) {
this.localStorage.save('MaarchCourrierToken', token);
}
getRefreshToken() {
return this.localStorage.get('MaarchCourrierRefreshToken');
}
setRefreshToken(refreshToken: string) {
this.localStorage.save('MaarchCourrierRefreshToken', refreshToken);
}
clearTokens() {
this.localStorage.remove('MaarchCourrierToken');
this.localStorage.remove('MaarchCourrierRefreshToken');
}
logout() {
if ( this.getToken() !== null ) {
this.cleanUrl(JSON.parse(atob(this.getToken().split('.')[1])).user.id);
}
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
this.clearTokens();
this.headerService.setUser();
this.router.navigate(['/login']);
}
saveTokens(token: string, refreshToken: string) {
this.setToken(token);
this.setRefreshToken(refreshToken);
}
isAuth(): boolean {
return this.getToken() !== null;
}
updateUserInfo(token: string) {
const currentPicture = this.user.picture;
this.user = JSON.parse(atob(token.split('.')[1])).user;
this.user.picture = currentPicture;
}
updateUserInfoWithTokenRefresh() {
this.http.get('../rest/authenticate/token', {
params: {
refreshToken: this.getRefreshToken()
}
}).subscribe({
next: (data: any) => {
this.setToken(data.token);
this.updateUserInfo(this.getToken());
},
error: err => {
this.notify.handleSoftErrors(err);
}
});
}
setUser(value: any) {
this.user = value;
}
}