Skip to main content
Authorization Code Flow を使用すると、通常の Web アプリケーションにログインを追加できます。このフローの仕組みや、これを使用すべき理由については、Authorization Code Flow を参照してください。通常の Web アプリから API を呼び出す方法については、Call Your API Using the Authorization Code Flow を参照してください。 Authorization Code Flow を実装するために、Auth0 では次のリソースを提供しています。 ログインに成功すると、アプリケーションはユーザーの を利用できるようになります。IDトークンには基本的なユーザープロフィール情報が含まれており、アクセストークンは Auth0 の /userinfo エンドポイントや独自の保護された API の呼び出しに使用できます。IDトークンの詳細については、ID Tokens を参照してください。アクセストークンの詳細については、Access Tokens を参照してください。 ユーザーに認可を要求し、authorization_code を付けてアプリにリダイレクトします。その後、そのコードをトークンと交換します。

前提条件

アプリを Auth0 に登録します。詳細については、Regular Web Applications の登録を参照してください。
  • Application Type として Regular Web App を選択します。
  • Allowed Callback URL{https://yourApp/callback} を追加します。
  • アプリケーションの グラントタイプ認可コード が含まれていることを確認します。詳細については、グラントタイプ の更新を参照してください。

ユーザーを認可する

フローを開始するには、ユーザーから認可を得る必要があります。この手順には、次のプロセスが 1 つ以上含まれる場合があります。
  • ユーザーを認証すること。
  • 認証を処理するために、ユーザーをにリダイレクトすること。
  • 以前に同意が与えられていない場合は、要求された権限レベルに対するユーザーの同意を得ること。
ユーザーを認可するには、アプリケーションからユーザーを認可 URLに送信する必要があります。

認可 URL の例

パラメーター

例として、アプリにログインを追加する際の認可 URL 用 HTML スニペットは次のようになります。

レスポンス

問題なく処理されると、HTTP 302 レスポンスが返されます。認可コードは URL の末尾に含まれます。

トークンを取得する

認可コードを取得したら、次にそれをトークンと交換する必要があります。前の手順で取得した認可コード (code) を使用して、トークンURLPOST します。

トークンURLにPOSTする例

パラメーター

レスポンス

問題なく完了すると、access_tokenrefresh_tokenid_tokentoken_type の各値を含むペイロードを伴う HTTP 200 レスポンスが返されます。
トークンは保存する前に必ず検証してください。手順については、IDトークンの検証およびアクセストークンの検証を参照してください。
IDトークンには、デコードして取り出す必要があるユーザー情報が含まれています。 アクセストークンは、Auth0 Authentication API の /userinfo エンドポイントまたは別の API を呼び出すために使用します。独自の API を呼び出す場合、API が最初に行う必要があるのは、アクセストークンの検証です。 リフレッシュトークンは、以前のアクセストークンまたはIDトークンの有効期限が切れた後に、新しいアクセストークンまたはIDトークンを取得するために使用されます。refresh_token がレスポンスに含まれるのは、offline_access スコープを含め、Dashboard で API の Allow Offline Access を有効にした場合のみです。
リフレッシュトークンを使用すると、ユーザーは実質的に無期限に認証された状態を維持できるため、安全に保管する必要があります。

ユースケース

基本的な認証リクエスト

この例は、手順 1 でユーザーの認可を行う際に送信できる最も基本的なリクエストを示しています。Auth0 のログイン画面が表示され、ユーザーは設定済みの任意の接続を使ってサインインできます。 これで、トークンをリクエストすると、IDトークンには基本的なクレームが含まれるようになります。IDトークンをデコードすると、次のようになります。

ユーザーの名前とプロフィール画像をリクエストする

通常のユーザー認証に加えて、この例では、名前や画像などの追加のユーザー情報をリクエストする方法を示します。 ユーザーの名前と画像をリクエストするには、ユーザーの認可時に適切なスコープを追加する必要があります。 これで、トークンをリクエストすると、IDトークンに、要求したnameおよびpictureクレームが含まれるようになります。IDトークンをデコードすると、次のようになります。

GitHub でユーザーをログインさせる

通常のユーザー認証に加えて、この例では GitHub などのソーシャル IDプロバイダーにユーザーを直接リダイレクトする方法を示します。まず、Auth0 Dashboard > Authentication > Social で適切な接続を設定し、Settings タブから接続名を取得する必要があります。 ユーザーを GitHub のログイン画面に直接送るには、手順 1 でユーザーの認証を開始する際に connection パラメーターを渡し、その値を接続名 (この場合は github) に設定する必要があります。 これで、トークンをリクエストすると、IDトークンには GitHub から返されたユーザーの一意の ID を含む sub claim が含まれます。IDトークンをデコードすると、次のようになります。

詳しくはこちら