import { Injectable } from '@angular/core'; const ID_KEY = 'AuthId'; const TOKEN_KEY = 'AuthToken'; const USERNAME_KEY = 'AuthUsername'; const AUTHORITIES_KEY = 'AuthAuthorities'; @Injectable({ providedIn: 'root' }) export class TokenStorageService { private roles: Array = []; constructor() { } signOut() { window.sessionStorage.clear(); } public saveToken(token: string) { window.sessionStorage.removeItem(TOKEN_KEY); window.sessionStorage.setItem(TOKEN_KEY, token); } public getToken(): string { return sessionStorage.getItem(TOKEN_KEY) || '{}'; } public saveUsername(username: string) { window.sessionStorage.removeItem(USERNAME_KEY); window.sessionStorage.setItem(USERNAME_KEY, username); } public getUsername(): string { return sessionStorage.getItem(USERNAME_KEY) || '{}'; } public saveAuthorities(authorities: string[]) { window.sessionStorage.removeItem(AUTHORITIES_KEY); window.sessionStorage.setItem(AUTHORITIES_KEY, JSON.stringify(authorities)); } public getAuthorities(): string[] { this.roles = []; if (sessionStorage.getItem(TOKEN_KEY)) { JSON.parse(sessionStorage.getItem(AUTHORITIES_KEY) || '{}').forEach((authority: { authority: string; }) => { this.roles.push(authority.authority); }); } return this.roles; } }