問題タブ [angular-oauth2-oidc]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
2063 参照

angular - angular-oauth2-oidc を使用した OAuth2 および OpenID Connect。JWT がローカル ストレージに保存されているのに (実際には) 使用されないのはなぜですか?

プロジェクトでは、このライブラリを使用しています: OAuth 2 のサポート用の angular-oauth2-oidcおよび Angular の OpenId Connect (OIDC)。

私はすべてをセットアップし、すべて正常に動作しています。

メインコンポーネント ファイル:

authConfig ファイル:

AuthGuard ファイル:

OIDC プロバイダー サイトへのログインに成功すると、access_token がローカル ブラウザーのセッション ストレージに保存されていることがわかります。

ここに画像の説明を入力

これはすべて完全に機能しますが、セッション ストレージのトークンを変更すると、保護されたルートにアクセスできます。が変更されましたaccess_token が。変更しても同じですid_token

--> AuthGuard では、保護されたルートにアクセスできます。

これがどのように可能になるかについて、誰かが私に教えてもらえますか?

これがドキュメントで内部的にどのように処理されているかについては何も見つけることができませんDocumentation angular-oauth2-oidc

これは実装上の問題ではなく、むしろライブラリがトークンを内部のどこかに保存し、代わりに変更されていないトークンを使用することを確信しています。他のすべては期待どおりに完全に機能します。

しかし、トークンが (実際には) 使用されていないのに、トークンをセッション ストレージに保存するのはなぜですか?!?

もっと:

ストレージからトークン全体を実際に削除すると、ブロックされたすべてのルートが実際にブロックされます。これは良いことです。JWT 内の有効期限 (exp) を実際の時間の前に変更すると、同じことが起こります。したがって、これら 2 つのチェックは実際には正常に機能していますが、AuthGuardを変更しaccess_tokenたり、有効なトークンを取得したりすると... (おそらくライブラリ内から?!?)id_token

一般的にJWTについて理解できないことがあると思います.なぜそれらがローカル/セッションストレージに保存されるのか、またはそれらへの変更が効果がないのはなぜですか...

どんな答えでも大歓迎です。