ノート: ユーザトークンの期限設定は、ユーザからサーバーに対するトークンの期限設定のベータ版機能の一部であり、変更される可能性があります。 ユーザからサーバーに対するトークンの期限設定のベータ機能にオプトインするには、「アプリケーションのオプション機能を有効化する」を参照してください。 詳しい情報については「ユーザからサーバーへのアクセストークンの期限設定」を参照してください。
ユーザアクセストークンの期限切れについて
定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、ユーザアクセストークンの期限を利用するようにGitHub Appを設定できます。 ユーザからサーバーへのリクエストの発行に関する詳しい情報については、「GitHub Appのユーザの特定と認可」を参照してください。
期限切れになるユーザトークンは、8時間で期限切れになります。 新しいユーザからサーバーへのアクセストークンを受信すると、レスポンスにはリフレッシュトークンも含まれます。このリフレッシュトークンは、新しいユーザトークン及びリフレッシュトークンと交換できます。 リフレッシュトークンは、6ヶ月間有効です。
リフレッシュトークンでのユーザトークンの更新
期限切れになるユーザからサーバーへのアクセストークンを更新するには、refresh_token
を新しいアクセストークン及びrefresh_token
と交換できます。
POST https://github.com/login/oauth/access_token
このコールバックリクエストは、新しいアクセストークンと新しいリフレッシュトークンを送信してきます。 このコールバックリクエストは、一時的なcode
をアクセストークンと交換するために使うOAuthのリクエストに似ています。 詳しい情報については「GitHub Appsのユーザの特定と認可」及び「認証の基本」を参照してください。
パラメータ
名前 | 種類 | 説明 |
---|---|---|
refresh_token | string | 必須。 GitHub Appのオーナーが期限切れするトークンを有効化し、新しいユーザアクセストークンを発行したときに生成されるトークン。 |
grant_type | string | 必須。 値はrefresh_token でなければならない(OAuthの仕様で必須)。 |
client_id | string | 必須。 GitHub AppのクライアントID。 |
client_secret | string | 必須。GitHub Appのクライアントシークレット。 |
レスポンス
{
"access_token": "e72e16c7e42f292c6912e7710c838347ae178b4a",
"expires_in": "28800",
"refresh_token": "r1.c1b4a2e77838347a7e420ce178f2e7c6912e169246c34e1ccbf66c46812d16d5b1a9dc86a149873c",
"refresh_token_expires_in": "15811200",
"scope": "",
"token_type": "bearer"
}
既存のGitHub Appに対する期限切れするユーザトークンの設定。
期限切れするユーザからサーバーへの認可トークンの有効化や無効化は、GitHub App設定から行えます。
- 任意のページの右上で、プロフィール画像をクリックし、続いてSettings(設定)をクリックしてください。
- 左サイドバーで [Developer settings] をクリックします。
- 左のサイドバーでGitHub Appsをクリックしてください。
- 選択したGitHub Appの隣のEdit(編集)をクリックしてください。
- 左サイドバーで、[ Beta Features] をクリックします。
- 「User-to-server token expiration(ユーザからサーバーへのトークンの有効期限)」の隣のOpt-in(オプトイン)もしくはOpt-out(オプトアウト)をクリックしてください。 この設定が適用されるまで、数秒かかることがあります。
新しいGitHub Appでの期限切れになるトークンのオプトアウト
新しいGitHub Appを作成する際には、デフォルトでそのアプリケーションは期限切れになるユーザからサーバーへのアクセストークンを使用します。
アプリケーションに期限切れにならないユーザからサーバーへのアクセストークンを使わせたい場合には、アプリケーションの設定ページで"Expire user authorization tokens(ユーザ認可トークンの期限切れ)"を選択を解除できます。
Existing GitHub Apps using user-to-server authorization tokens are only affected by this new flow when the app owner enables expiring user tokens for their app.
Enabling expiring user tokens for existing GitHub Apps requires sending users through the OAuth flow to re-issue new user tokens that will expire in 8 hours and making a request with the refresh token to get a new access token and refresh token. 詳しい情報については「GitHub App のユーザの特定と認可」を参照してください。