準拠した OAuth 2.0 実装を想定すると、トークン エンドポイント URL への要求を実行し、次の形式POST
を使用して次のパラメーターを提供することによって、アクセス トークンの承認コードを交換できます。application/x-www-form-urlencoded
grant_type
- に設定する必要がありますauthorization_code
。
code
- あなたが持っているコードの値が含まれます。
redirect_uri
- 認証コードを取得する要求にも含まれている場合は、値が一致している必要があります。
さらに、クライアントに応じて、クライアントにclient_id
資格情報が発行されていない場合、またはクライアントがクライアント認証を実行する必要がある資格情報を持っている場合は、パラメーターを提供する必要があります。これは、識別子を含む HTTP 基本認証ヘッダーを渡すことによって実行できます。秘密。
を使用した例ですが、unirest
他の HTTP クライアントにも簡単に適用できます。
unirest.post(tokenEndpointUrl)
.headers({
'Accept': 'application/json',
'Content-type': 'application/x-www-form-urlencoded'
})
.auth({
user: clientId,
pass: clientSecret
})
.send(`redirect_uri=${redirectUrl}`)
.send(`code=${code}`)
.send('grant_type=authorization_code')
.end(function (response) {
// Handle response
});
基本はおそらく変更されませんが、各プロバイダーのドキュメントを確認してください。拡張機能が配置されているか、情報を提供する方法がより柔軟になっている可能性があるためです。たとえば、Auth0 と Google は同じだと思いますが、application/x-www-form-urlencoded
形式だけでなく、JSON エンコードされた本体でパラメーターを渡すこともできます。
更新:
特定の認証プロバイダーは、それらと統合する開発者のために物事を簡素化する追加のライブラリを実装する場合があります。たとえば、Auth0は、 Auth0 認証をアプリケーションに統合する方法を抽象化および簡素化する、passport-auth0を提供します。