> ## Documentation Index
> Fetch the complete documentation index at: https://developers.authlete.com/llms.txt
> Use this file to discover all available pages before exploring further.

# トークンの有効期間の計算ロジック

> Authlete のバージョンによるアクセス (リフレッシュ) トークンの有効期間秒数計算方法について解説。

## はじめに

Authlete が発行するアクセス (リフレッシュ) トークンの有効期間秒数 （以下 *duration* と記述）の計算ロジックは、利用している Authlete のバージョンによって異なります。本記事では各バージョンにおける算出方法について説明します。

## Authlete 1.x

* **サービス**に設定されたアクセス （リフレッシュ） トークンの有効期間秒数を取得し、これを *duration* の初期値とする。<img src="https://mintcdn.com/authlete/WGQFc11Y4wUplGrc/img/kb/ja/oauth-and-openid-connect/tokens/how-to-calculate-token-duration_1.png?fit=max&auto=format&n=WGQFc11Y4wUplGrc&q=85&s=e44f0486e1a917ef7102292694329274" alt="how-to-calculate-token-duration_1" width="551" height="598" data-path="img/kb/ja/oauth-and-openid-connect/tokens/how-to-calculate-token-duration_1.png" />

## Authlete 2.0 以降

Authlete 2.0 からは**スコープ**単位の有効期間設定をサポートしている。上記の Authlete 1.x の場合の処理に加え、以下の処理を行う。

1. クライアントがリクエストしているスコープを判別する
2. それら、リクエストされたスコープ群のいずれかに対して、アクセス （リフレッシュ） トークンの有効期間秒数が設定されている場合 (詳細は[こちら](/ja/configuration-reference/tokens-and-claims/token-duration-per-scope)
   )、以下の処理を行う
   1. 当該スコープ群に設定されたアクセス （リフレッシュ） トークンの有効期間の中から、最小の値を取得する
   2. 現在の *duration* の値と、2.1. で取得した値を比較し、より小さい方を *duration* の値として採用する

<img src="https://mintcdn.com/authlete/WGQFc11Y4wUplGrc/img/kb/ja/oauth-and-openid-connect/tokens/how-to-calculate-token-duration_2.png?fit=max&auto=format&n=WGQFc11Y4wUplGrc&q=85&s=1db66dc27f288d72d2613d3cf1ba3ffb" alt="how-to-calculate-token-duration_2" width="1020" height="594" data-path="img/kb/ja/oauth-and-openid-connect/tokens/how-to-calculate-token-duration_2.png" />

## Authlete 2.1 以降

Authlete 2.1 からは**クライアント**単位の有効期間設定をサポートしている。上記の Authlete 1.x, 2.0 の場合の処理に加え、以下の処理を行う。

* どのクライアントがリクエストを行なっているかを判別する
* そのクライアントに対して、アクセス （リフレッシュ） トークンの有効期間秒数が設定されている場合 (詳細は[こちら](/ja/configuration-reference/tokens-and-claims/token-duration-per-client)
  )、 当該クライアントに対して設定されたアクセス （リフレッシュ） トークンの有効期間秒数と現在の *duration* の値を比較し、より小さい方を *duration* の値として採用する

<img src="https://mintcdn.com/authlete/WGQFc11Y4wUplGrc/img/kb/ja/oauth-and-openid-connect/tokens/how-to-calculate-token-duration_3.png?fit=max&auto=format&n=WGQFc11Y4wUplGrc&q=85&s=cf369043aa1143487ebc6851a43d2da4" alt="how-to-calculate-token-duration_3" width="498" height="262" data-path="img/kb/ja/oauth-and-openid-connect/tokens/how-to-calculate-token-duration_3.png" />

## 参考リンク

* [トークンの有効期間をスコープ単位で制御する](/ja/configuration-reference/tokens-and-claims/token-duration-per-scope)
* [トークンの有効期間をクライアント単位で制御する](/ja/configuration-reference/tokens-and-claims/token-duration-per-client)
