"проверка access_token не удалась. неправильное состояние / nonce." при выполнении silentRefresh вручную - PullRequest
0 голосов
/ 15 ноября 2018

Я использую 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 () Кстати.

...