Auth0 Post-Login Actions
post-login Action を使用すると、api.refreshToken オブジェクトを通じて、リフレッシュトークンメタデータに対する CRUD 操作を管理できます。これにより、ユーザーやコンテキストに応じたロジックに基づいて、リフレッシュトークンメタデータを管理できます。
既存のリフレッシュトークンメタデータを取得する
リフレッシュトークンメタデータを読み取るには、event.refresh_token.metadata オブジェクトを使用します。
event.refresh_token.metadata オブジェクトには、以下で設定されたメタデータが含まれます。- 同じフロー内のそれ以前の Actions
- リフレッシュトークン交換中にリフレッシュトークンが再利用された場合の、以前のトランザクション
既存のメタデータを追加または更新
api.refreshToken.setMetadata() メソッドを使用して、リフレッシュトークンのメタデータを設定または更新できます。
event.refresh_token オブジェクトにすぐ反映されます。
リフレッシュトークンのメタデータを削除する
リフレッシュトークンのメタデータを削除するには、次のapi.refreshToken メソッドを使用します。
-
api.refreshToken.deleteMetadata("key")は、指定したリフレッシュトークンのメタデータを削除します -
api.refreshToken.evictMetadata()は、リフレッシュトークンのメタデータをすべて削除します
- Event object: リフレッシュトークンの Event オブジェクトとそのプロパティについて説明します。
- API object: リフレッシュトークンの API オブジェクトとそのメソッドについて説明します。
Auth0 Management API
Management API を使用して、リフレッシュトークンのメタデータに対する CRUD (作成、置換、更新、削除) リクエストを実行できます。/api/v2/refresh-tokens/{id} エンドポイントを呼び出すには、update:refresh_tokens スコープを持つ Management API アクセストークン が必要です。既存のリフレッシュトークンメタデータを取得する
/api/v2/refresh-tokens/{id} エンドポイントに GET リクエストを送信します。
既存のリフレッシュトークンメタデータを追加または更新する
/api/v2/refresh-tokens/{id} エンドポイントに対して PATCH リクエストを実行します:
リフレッシュトークンメタデータを削除する
空のメタデータオブジェクトを指定して、/api/v2/refresh-tokens/{id} エンドポイントに PATCH リクエストを送信します:
ユースケース: 組織コンテキストを保存して利用する
初回認証時にリフレッシュトークンメタデータを使用して 組織コンテキストを保存し、後でリフレッシュトークン交換時に利用できます。これは、監査、分析、失効パイプラインなどの下流システムで役立ちます。初回認証時にメタデータを設定
初回ログイン時に、リフレッシュトークンのメタデータに組織コンテキストを設定します。リフレッシュトークン交換時にメタデータを利用する
リフレッシュトークン交換の際は、event.refresh_token オブジェクトが存在するため、以前に保存したメタデータを読み取ることができます。
Management API で取得
/api/v2/refresh-tokens/ エンドポイントを使用して、リフレッシュトークンメタデータを取得することもできます。ユースケース: デバイス情報の追跡と検証
セキュリティ対策として、初回認証時にリフレッシュトークンメタデータを使ってデバイス情報を取得し、以降のリフレッシュトークン交換時にその情報を検証できます。初回認証時にデバイス情報を設定する
リフレッシュトークン交換時のデバイス情報の検証
エラー処理
Auth0 Dashboard > Monitoring > Logs に移動してリフレッシュトークンメタデータのログイベントを確認するか、Management API logs エンドポイントを使用してログを取得できます。- Actions でリフレッシュトークンメタデータの追加または更新中にエラーが発生すると、認証トランザクションは失敗し、callback URL にエラーが返されます。
f イベントコードが、対応するエラーとともに記録されます。
- Auth0 Management API を使用してリフレッシュトークンメタデータを管理する際にエラーが発生した場合、API は対応するメッセージとともに
HTTP status: 400エラーを返します: