У меня проблема с моим обновлением токена JWT sh, мне нужно обновить токен sh, если срок его действия истек без входа в систему, я видел внутри NbAuthService метод под названием refreshToken . Я не понимаю, как его использовать, я добавил этот код в свой перехватчик. Вот мой код В этом коде он не подписывается на refreshToken
@Injectable()
export class AuthJWTInterceptor implements HttpInterceptor {
constructor(private injector: Injector, private router: Router) {}
intercept(
req: HttpRequest<any>,
next: HttpHandler,
): Observable<HttpEvent<any>> {
return this.authService.getToken().switchMap((token: NbAuthJWTToken) => {
if (!token.isValid()) {
this.authService.refreshToken('email').subscribe((newToken: any) => {
console.log((newToken));
});
this.router.navigate(['auth']);
}
if (token) {
const JWT = `${token.getValue()}`;
req = req.clone({
setHeaders: {
Authorization: JWT,
},
});
}
return next.handle(req);
});
}
protected get authService(): NbAuthService {
return this.injector.get(NbAuthService);
}
}
Вот мой код конфигурации
NbOAuth2AuthStrategy.setup({
name: 'email',
clientId: environment.cognitoClientId,
clientSecret: '',
clientAuthMethod: NbOAuth2ClientAuthMethod.NONE,
redirect: {
success: '',
failure: '',
},
defaultErrors: ['Something went wrong, please try again.'],
defaultMessages: ['You have been successfully authenticated.'],
authorize: {
endpoint: environment.cognitoUrl + '/oauth2/authorize',
redirectUri: environment.siteUrl + '/auth/callback',
responseType: NbOAuth2ResponseType.TOKEN,
},
token: {
endpoint: environment.cognitoUrl + '/oauth2/token',
grantType: NbOAuth2GrantType.AUTHORIZATION_CODE,
requireValidToken: false,
class: NbAuthCognitoToken,
},
refresh: {
endpoint: environment.cognitoUrl + '/oauth2/token',
grantType: NbOAuth2GrantType.REFRESH_TOKEN,
},
}),
],
}).providers,
Итак, в чем ошибка, которую я сделал здесь, пожалуйста, помогите мне разрешите это.