Я создаю страницу входа для своего приложения с помощью AWS Cognito и Angular 8 . Все работает нормально, пока я не попытаюсь создать функцию getToken()
, и получается, что метод getSession()
принимает обратный вызов вместо возврата строки .
, которая значит я должен обернуть его внутри Обещания , например, так:
export function getToken() {
var currentUser = userPool.getCurrentUser();
if (!currentUser) {
// redirect to login page
} else {
return new Promise((resolve, reject) => {
currentUser.getSession((err, session) => {
if (err) {
reject(err);
} else if (!session.isValid()) {
resolve(null);
} else {
resolve(session.getIdToken().getJwtToken());
}
});
});
}
}
А вот мой перехватчик :
@Injectable()
export class AuthenInterceptor implements HttpInterceptor {
intercept(req: HttpRequest<any>, next: HttpHandler) : Observable<HttpEvent<any>> {
// Add token to the header.......
return next.handle(req);
}
}
Насколько Могу сказать, что возврат Promise здесь не вариант. Так как я могу добавить токен в шапку? Или я должен получить его непосредственно из localStorage?