akveo / akveo/nebular

NbAuthService refreshToken() not triggering onTokenChange()

Open
#2,737 0 comments 2 reactions 0 assignees View on GitHub
Dominant language
TypeScript
Stars
8.1k
Forks
1.5k
PR merge metrics
No merged PRs in 30d

Description

I need help here. This is my authInterceptor:

````
intercept(req: HttpRequest, next: HttpHandler): Observable> {
return this.authService.getToken().pipe(
switchMap((token: NbAuthJWTToken) => {
if (token) {
if (!token.isValid()) {
this.router.navigate(['/auth/login']);
} else if (req.url.match(/energy/)) {
this.authService.refreshToken('email', token);
}
const cloned = req.clone({
headers: req.headers.set('Authorization', 'Bearer ' + token),
});
return next.handle(cloned);
} else {
return next.handle(req);
}
}),
);
}
````
I can see the new token stored in the storage, but the onTokenChange subscriptors are not working. I have this in my header.component:

````
this.authService.onTokenChange()
.subscribe((token: NbAuthJWTToken) => {
console.log(token.getPayload());
if (token.isValid()) {
this.prettyConfig.leftTime = moment(token.getTokenExpDate()).diff(moment(), 'seconds');
}
});
````

What is the problem? Thanks for any help.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.