認証フローへの OAuth 更新トークンの適合
Web サーバ OAuth 認証フローとユーザエージェントフローはどちらも、新しいアクセストークンの取得に使用可能な更新トークンを提供します。
アクセストークンは、Salesforce のセッションタイムアウトで指定された有効期間に制限されています。アプリケーションが有効期限の切れたアクセストークンを使用すると、「Session expired or invalid」エラーが返されます。アプリケーションが Web サーバまたはユーザエージェント OAuth 認証フローを使用している場合、認証中に更新トークンが提供されます。この更新トークンを使用して、新しいアクセストークンを取得します。
更新トークン要求
クライアントアプリケーションが新しいアクセストークンを取得するには、次の要求パラメータを指定して POST 要求をトークン要求エンドポイントに送信します。
| パラメータ | 説明 |
|---|---|
| grant_type | 値は refresh_token である必要があります。 |
| refresh_token | クライアントアプリケーションがすでに受け取っている更新トークン。 |
| client_id | 接続アプリケーション定義の [コンシューマ鍵]。 |
| client_secret | 接続アプリケーション定義の [コンシューマの秘密]。[Web サーバフローの秘密が必要] 設定が接続アプリケーション定義で有効になっていない場合を除き、必須です。このパラメータは省略可能です。 |
| format | 期待される戻り形式。デフォルトは、json です。値は次のとおりです。
|
POST 要求の本文でクライアントのログイン情報をパラメータとして送信する代わりに、Salesforce では HTTP 基本認証スキームがサポートされています。このスキーマでは、次のように要求の認証ヘッダーに client_id と client_secret が必要です。
Authorization: Basic64Encode(client_id:secret)
client_id と client_secret はコロン (:) で区切ります。詳細は、「OAuth 2.0 認証フレームワーク」を参照してください。
次の例は、(POST 要求の本文でクライアントのログイン情報を送信する代わりに) HTTP 基本認証スキームを使用する更新トークン POST 要求を示します。
Salesforce の応答
Salesforce は、更新トークン要求を検証した後、次のレスポンスボディパラメータを使用してアプリケーションに応答を送信します。
次の例は、JSON レスポンスボディを示しています。
| パラメータ | 説明 |
|---|---|
| access_token | アプリケーションが要求を行うために使用するセッション ID として機能するアクセストークン。このトークンは、ユーザログイン情報と同様に保護する必要があります。 |
| instance_url | API コールの送信先となる Salesforce インスタンスを示します。 |
| id | ユーザを識別し、ユーザの詳細を照会するために使用できる ID URL。エンドユーザに関する詳細な情報を取得するための HTTP 要求で使用できます。 |
| issued_at | 署名が作成された日時。UNIX エポック (1970 年 1 月 1 日 00:00:00 UTC) からの秒数として表されます。 |
| signature | 連結 ID と issued_at 値を含む client_secret (非公開鍵) で署名されている Base64 符号化された HMAC-SHA256 署名。signature を使用して、ID URL がサーバから送信されたときに変更されなかったことを確認します。 |
考慮事項