問題タブ [oidc-client]
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+oidc-client: getUser() は常に null を返します
angularプロジェクトでoidc-clientを使用しています。ユーザー オブジェクトが null でない場合にユーザーをホームページにリダイレクトするために、app.component.ts に以下のコードを記述しました。ただし、ログインに成功した後でも、ユーザー オブジェクトは常に null です。認証に Microsoft Azure を使用しています。
app.component.ts
AuthenticationService.ts
ログインに成功した後、oidc.user.xxxxxxx という名前のローカル/セッション ストレージに key:val ペアが表示されません。
また、いくつかの社内アプリケーションのサンプルをクロスチェックしました。ログインが成功すると、oidc api はトークン エンドポイントへの呼び出しをトリガーします。私の場合、このエンドポイントは呼び出されていません。
何が欠けている可能性がありますか?私は何を間違っていますか?
c# - IdentityModel.OidcClientでrefresh_tokenでLoginResultを取得するには?
IdentityModel.OidcClient を使用して access_token を取得します。ブラウザーでログインした後、OidcClient.ProcessResponseAsync() を呼び出して、RefreshTokenHandler (およびトークン、タイムスタンプ、ユーザー/クレーム) で LoginResult を取得します。ここで、RefreshTokenHandler を使用して HttpClient を作成し、WebApis を呼び出します。
access_token の有効期限が切れるたびに、WebApi は HTTP ステータス 401 (未承認) を返します。RefreshTokenHandler は、refresh_token を使用して新しい access_token を作成し、要求を繰り返します。これまでのところ、すべて正常に動作しています。
ここで、refresh_token を永続化し、アプリケーションを再起動し、refresh_token を使用して RefreshTokenHandler (およびトークン、タイムスタンプ、ユーザー/クレーム) でクリーンな LoginResult を取得し、HttpClient を作成したいと考えています。
どうやってやるの?IdentityModel.OidcClient をフォークしない方法はありますか。
angular - Angular + Azure: 有効期間が最大のため、更新トークンの有効期限が切れています
更新トークンの最大有効期間は 24 時間に設定されています。非アクティブ状態が 24 時間続くと、ユーザーは Microsoft アカウントに再度ログインするよう求められます。
oidc 設定では、automaticSilentRenew プロパティを true に設定しています。1 時間ごとに、token
エンドポイントへのリクエストが自動的に送信されます。
エンドポイントは 400 の不正な要求で失敗し、token
24 時間後に以下の応答が返されます
そのため、24 時間後にユーザー アクティビティが原因でエンドポイントが呼び出された場合、サーバーは 401 を無許可で送信し、catch ブロックでユーザーを Microsoft ログイン ページにリダイレクトするコードを記述しました。
代わりに、トークン エンドポイントをインターセプトし、エンドポイントが無効な許可で 400 の不正な要求を返した場合に、ユーザーを Microsoft ログイン画面に自動的にリダイレクトする方法はありますか。