Я использую angular-oauth2-oidc .
У меня есть следующие настройки:
oauthConfig.clientId = authConfig.clientId;
oauthConfig.redirectUri = this.checkURL(authConfig.redirectUri);
oauthConfig.scope = authConfig.scope;
oauthConfig.oidc = true;
oauthConfig.issuer = this.checkURL(authConfig.issuer);
oauthConfig.requireHttps = authConfig.requireHttps;
oauthConfig.silentRefreshRedirectUri = this.checkURL(authConfig.redirectUri + /silent-refresh.html');
this.oauthService.configure(oauthConfig);
this.oauthService.setupAutomaticSilentRefresh();
При выполнении тихого обновления мне нужно получить новый токен доступа и передать его другим частям приложения. Вот как я пытаюсь получить токен:
this.oauthService.events.subscribe(({ type }) => {
switch (type) {
case 'token_refreshed':{
//This event doesn't get detected when the automatic silent refresh happens
break;
}
case 'silently_refreshed':{
//This event doesn't get detected when the automatic silent refresh happens
break;
}
case 'token_expires':{
this.oauthService.silentRefresh().then(()=>{
//Here I want to pass the new token to the other parts of the app
}).catch((err)=>{ return; });
break;
}
}
});
Когда я вручную выполняю автоматическое обновление, я получаю сообщение об ошибке «Ошибка проверки access_token. Неправильное состояние / nonce.».
У меня также настроено автоматическое обновление без вывода сообщений, однако события не запускаются, когда происходит автоматическое обновление, поэтому я не могу передать токен и другим частям приложения.
Я что-то не так делаю?
Я использую initImplicitFlow () Кстати.