в ngOnInit, я вызываю сервис для получения токена, но он не работает, похоже, что эта часть кода пропущена, она не отображается в сетевых запросах, сервис работает, потому что я использую его в другой компонент позже, но мне нужно использовать его оттуда, этот файл - app.component.ts
//imports
export class AppComponent implements OnDestroy {
title = 'cor4edu-fe';
menu: NbMenuItem[];
alive: boolean = true;
constructor(private sidebarService: NbSidebarService,
private appMenu: AppMenu,
public auth: AuthService) {}
ngOnInit(){
this.auth.getTokenSilently$().subscribe((token) => {
console.log(token);
localStorage.setItem("Token", token);
})
this.myFuncion();
this.initMenu();
}
getToken() {
return new Promise((resolve) => {
this.auth.getTokenSilently$().subscribe(token => resolve(token));
});
}
async myFuncion() {
const token = await this.getToken();
console.log(token);
}
toggle() {
this.sidebarService.toggle(true);
return false;
}
initMenu() {
const token= localStorage.getItem("Token");
const tokenPayload = decode(token);
const permissions=tokenPayload['permissions'];
this.appMenu.getMenu()
.pipe(takeWhile(() => this.alive))
.subscribe(menu => {
console.log(localStorage.getItem("Token"));
const exist = (menu, permissions) => menu.filter(el1=>permissions.some(el2=> "/"+el2.split(":")[1]==el1.link));
const menun=exist(menu, permissions);
if(this.auth.isAuthenticated()){
this.menu = menun;
}else{
this.menu=[
{
title: 'Dashboard',
icon: 'home-outline',
link: '/',
home: true,
children: undefined,
}
]
}
});
}
ngOnDestroy(): void {
this.alive = false;
}
}