/authorize エンドポイントを介して認証リクエストを開始する際に、offline_access スコープ を含める必要があります。API で Offline Access を必ず有効にしてください。詳細については、API Settings を参照してください。
たとえば、Authorization Code Flow を使用している場合、認証リクエストは次のようになります。
リフレッシュトークンはセッションに保存されます。次に、セッションの更新が必要になった場合 (たとえば、あらかじめ設定した期間が経過した場合や、ユーザーが機密性の高い操作を実行しようとした場合) 、アプリはバックエンドでリフレッシュトークンを使用して、新しいを取得します。このとき、grant_type=refresh_token を指定して /oauth/token エンドポイントを使用します。
ユーザーの認証が正常に完了すると、アプリケーションは redirect_uri にリダイレクトされ、URL の一部として code が付与されます: {https://yourApp/callback}?code=BPPLN3Z4qCTvSNOy。この code は、/oauth/token エンドポイントを使用してと交換できます。
レスポンスには、アクセストークンとリフレッシュトークンが含まれている必要があります。
client_secret は機密アプリケーションでのみ必要なため、リクエストに含める必要はありません。
リフレッシュトークンを使うと、ユーザーは実質的に無期限で認証済みの状態を維持できるため、アプリケーションで安全に保存する必要があります。
Authorization Code Flow を使用してこれを実装する方法の詳細については、チュートリアル「Call API Using the Authorization Code Flow」を参照してください。他のグラントについては、「Authentication and Authorization Flows」を参照してください。
MFA をカスタマイズする
oauth/token エンドポイントでの認証中、レスポンスでは mfa_required エラーが返されます。このエラーには、MFA API で使用する mfa_token と、認証要素の一覧を含む mfa_requirements パラメーターが含まれます。
mfa_token を使用して mfa/authenticator エンドポイントを呼び出し、ユーザーが登録済みのすべての認証要素の一覧を取得したうえで、アプリケーションがサポートするものと同じタイプを特定します。チャレンジを発行するには、対応する authenticator_type も取得する必要があります。
request/mfa/challenge エンドポイントを呼び出して、MFA チャレンジを必須にします。
Auth0 Actions を使用すると、MFA フローをさらにカスタマイズできます。詳細については、Actions トリガー: post-challenge - API オブジェクト を参照してください。