ノート: ユーザトークンの期限設定は、ユーザからサーバーに対するトークンの期限設定のベータ版機能の一部であり、変更される可能性があります。 ユーザからサーバーに対するトークンの期限設定のベータ機能にオプトインするには、「アプリケーションのオプション機能を有効化する」を参照してく� さい。 詳しい情� �については「ユーザからサーバーへのアクセストークンの期限設定」を参照してく� さい。
ユーザアクセストークンの期限切れについて
定期的なトークンのローテーションを強制し、侵害されたトークンの影響を抑えるために、ユーザアクセストークンの期限を利用するように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(ユーザ認可トークンの期限切れ)"を選択を解除できます。
ユーザからサーバーへの認可トークンを使用する既存のGitHub Appsは、アプリケーションのオーナーが期限になるユーザトークンをアプリケーションに対して有効化した� �合にのみ、この新しいフローの影響を受けます。
既存のGitHub Appsに対して期限設定付きのユーザトークンを有効化するためには、8時間で期限切れになる新しいユーザトークンを再発行するためにOAuthフローを通じてユーザを送信し、リフレッシュトークンを使って新しいアクセストークンとリフレッシュトークンを取得するためのリクエストを発行する必要があります。 詳しい情� �については「GitHub App のユーザの特定と認可」を参照してく� さい。