問題タブ [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 に答える
472 参照

angular - Angular に Refresh Token を実装する

私は、このSpringセキュリティの実装に取り​​組んOAuth2でいJWTます:

著者によると、次のようにトークンを使用してリソースにアクセスできます。

リソースにアクセスするには (ResourceServer を構成した別のアプリケーションが必要です):http localhost:8080/users 'Authorization: Bearer '$ACCESS_TOKEN

このステップについて:

更新トークン機能を使用するには:http --form POST adminapp:password@localhost:9999/oauth/token grant_type=refresh_token refresh_token=$REFRESH_TOKEN

Angularトークンを更新する必要があるときと、この部分をアプリでどのように処理できるかは明確ではありません。

トークンを時々更新するタイマーを実装する必要がありますか、またはこの機能を実装する別の方法はありますか?

0 投票する
2 に答える
609 参照

refresh - Google Chrome をバージョン 85 に更新した後、サイレント更新が機能しない

angular-oidc-auth2 v9.0.3 を使用して、サイレント リフレッシュによるトークンの更新をリクエストしています。暗黙的なフローを使用しています。Google chrome がバージョンを 85 に更新するまでは問題なく動作していました。リクエストを確認したところ、Google chrome には以前はリファラー ポリシー: no-referrer-when-downgrade があり、すべて問題なかったことがわかりました。バージョン 85 からは、リファラー ポリシーがデフォルトになっています: strict-origin-when-cross-origin。その後、トークンの更新に失敗し始めました。セキュリティ上の理由から、コードを共有することはできませんが、ID サーバーはアプリケーションとは異なるドメインにあります。リファラーポリシーのサイレントリフレッシュリクエストのヘッダーを設定できる方法はありますか? またはそれを解決できる他の方法はありますか?

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

javascript - OAuth2 および angular-auth2-oidc ライブラリの問題 - PKCE コード フロー

私は OAuth2 とangular-auth2-oidcライブラリが初めてなので、初心者の間違いを犯しても我慢してください。

達成したいこと:ユーザーがホームページのログイン リンクをクリックすると、プロバイダーのサイトに送られ、ログインしてから、トークンを使用してホームページにリダイレクトされます。

これまでの結果:ユーザーはプロバイダーのサイトに送られ、ログインし、サイトのホームページに正常に戻されましたが、トークンを取得できませんでした。のコンソールにいくつかのデータを出力しましたがngOnit()、それらはすべて null、未定義、または false です。

ngOnit()関数内でもいくつかのイベントを出力し、コンソールで取得するイベントはtoken_refresh_error. コードで明示的にトークンの更新を行っていませんが、それでもこのエラーが発生します。

この投稿のエラーサブヘッダーの下に、エラーに関するスクリーンショットを追加しました。

ここに私の設定と実装があります:

私の OAuth2 プロバイダーの openid 構成は次のとおりです。

これが私の実装です:

// ホームページ コンポーネント

// ログイン関数を含むクラス

// エラー / エラーのスクリーンショット

ユーザーがホームページにリダイレクトされたときのコンソールのエラーは次のとおりです。

1)このスクリーンショットでは、検出ドキュメントが読み込まれる場合を除いて、値は null、false、または未定義です。

ここに画像の説明を入力

2)次のスクリーンショットでは、 EVENT-TYPEの 1 つが であることがわかりますtoken_refresh_errorEVENT-REASONはですBAD REQUESThttps//DOMAIN_PROVIDER/op/v1/tokende initOAuthConfig()メソッドにtokenEndPoint属性を追加しましたが、リクエストを送信しようとして失敗しています。エラーが であることもわかりますerror: "invalid_grant"。スクリーンショットの 2 行目は、トークンの取得中にエラーが発生したことを示しています

問題が解決すると考えてinitOAuthConfig()に追加jwks: {'keys': ['https://DOMAIN_PROVIDER/op/v1/keys']}しましたが、解決しませんでした。

ここに画像の説明を入力

// コンソールのアプリケーション タブ: セッション ストレージ

コンソールのアプリケーション タブから、セッション ストレージにデータのキーと値のペアがいくつかあることがわかります (ローカル ストレージにはデータがありません)。次のスクリーンショットを参照してください。

ここに画像の説明を入力