問題タブ [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.
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について理解できないことがあると思います.なぜそれらがローカル/セッションストレージに保存されるのか、またはそれらへの変更が効果がないのはなぜですか...
どんな答えでも大歓迎です。