let b64DecodeUnicode = str =>
decodeURIComponent(
Array.prototype.map.call(atob(str), c =>
'%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2)
).join(''))
let parseJwt = token =>
JSON.parse(
b64DecodeUnicode(
token.split('.')[1].replace('-', '+').replace('_', '/')
)
)
jwt.decode( token, SECRET_KEY, algorithm='HS256' )
import { JwtHelperService } from "@auth0/angular-jwt";
constructor(private jwtHelper: JwtHelperService) {}
// DDECODIFICA TOKEN
CheckUser(): void {
this.role = this.GetUserRole();
this.username = this.GetUsername();
const token = this.tokenGetter();
if (token && this.jwtHelper.isTokenExpired(token)) {
alert("Sessione scaduta!");
this.router.navigate(["login"]);
return;
}
if (token && !this.jwtHelper.isTokenExpired(token)) {
this.isLogged = true;
if (this.role === "User") {
this.adminMode = false;
} else {
this.adminMode = true;
}
}
console.log("logged?: " + this.isLogged);
console.log("role: " + this.role);
console.log("username: " + this.username);
console.log("adminMode?: " + this.adminMode);
}
tokenGetter() {
return localStorage.getItem("token");
}
GetUserRole() {
const token = this.tokenGetter();
if (!token) {
return;
}
let tokenData = this.jwtHelper.decodeToken(token);
let role =
tokenData[
"http://schemas.microsoft.com/ws/2008/06/identity/claims/role"
];
return role;
}
GetUsername() {
const token = this.tokenGetter();
if (!token) {
return;
}
let tokenData = this.jwtHelper.decodeToken(token);
let username =
tokenData[
"http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name"
];
return username;
}