2017-10-23 10 views
0

OIDCプロバイダ(IdentityServer4)でaurelia-authenticationの実装を試みており、ユーザをログアウトする際に問題が発生しているようです。aurelia-authentication OAuth2レスポンスの状態の値が異なります

OIDC設定セクション(https://aurelia-authentication.spoonx.org/oidc.html)に記載されているauthService.logout機能を使用して、ユーザーを正常にログアウトできません。

if (logoutResponse.state !== stateValue) { 
    return Promise.reject('OAuth2 response state value differs'); 
} 

logoutReponseが犯人であると思われる「のOAuth2応答状態値が異なる」:私はメッセージを提供し、ログアウト機能の約束拒否にそれを追跡してきたビットさらにそれに探して

それは間違って{/login?state: "qAIxYwKqLHYJtyar2PfdvaROWT1O56P7"}という名前のステートプロパティを持つオブジェクトとして処理されるためです。

私は実際にif文を変更することができます正常に動作しているようだが、直接アウレリア・認証ソースを修正するために私たちを必要と

if (logoutResponse['/login?state'] !== stateValue) { 
    return Promise.reject('OAuth2 response state value differs'); 
} 

"state"プロパティが "state"ではなく相対パスとして使用されている理由について、他の人からの意見はありますか?

答えて

1

私はこの問題を追跡して解決策を見つけることができました。

解決策は、aurelia-authentication authConfig postLogoutRedirectUriの値をルートページ(http://localhost:8080)に変更することでした。さらに、私は自分のIdentityServer4クライアント定義内でそのURIをPostLogoutRedirectUrisの下に定義する必要がありました。

logoutResponseは、適切な値を保持し、リダイレクトを正常に許可するプロパティーstateという名前のプロパティーを正しく受け取っていました。

関連する問題