アクセストークンの有効期限

アクセストークンには有効期限がありますが、デフォルトでは有効期限として 2147483647 秒が設定されています。これは、約 68 年後に相当する時間のため、アクセストークンの期限切れによる再ログインを考慮する必要はありません。

セキュリティの観点から、アクセストークンの有効期限を変更することもできます。また、変更することにより、万一、アクセストークンが漏洩しても、攻撃を受け続けるリスクを回避できます。

有効期限が経過した後、そのアクセストークンを使って Kii Cloud にアクセスすると、API は実行エラーになります。Android、iOS、REST API では、リフレッシュトークンを使うと、新しいアクセストークンに自動更新することができます。

有効期限は初めにログインしたタイミングからの経過時間として設定します。一般的な Web アプリケーションのように、最終アクセス時刻からのアイドル時間ではない点に注意してください。

管理者機能によりユーザーの無効化が行われた場合は、有効期限にかかわらず、アクセストークンは無効になります。また、ユーザーのパスワードが変更された場合も、有効期限に関わらず、アクセストークンは無効になります。

API による有効期限の設定

デフォルトでは、取得したアクセストークンは永久的に利用可能となっています。これを変更するには Kii.setAccessTokenExpiration(expiresIn) メソッドを使ってアクセストークンが有効な時間を設定してください。有効時間が設定されると、これ以降発行されるアクセストークンにこの設定が反映されます。

有効期限を設定した場合にはKiiUser.authenticateWithToken(token, callbacks, expiresAt)を使用してログイン時に保存しておいた有効期限を指定してログインすることで、KiiUser.getAccessTokenObjectに正しい有効期限を管理させると便利です。

  • // Get an access token and its lifetime from the storage with your own function.
    var accessToken = getAccessToken();
    var expiresAt = getAccessTokenExpiresAt();
    
    // Authenticate a user with the access token.
    KiiUser.authenticateWithToken(accessToken, {
      success: function(theUser) {
        // Do something.
      },
      failure: function(theUser, errorString) {
        // Handle the error.
      }
    }, expiresAt)
  • // Get an access token and its lifetime from the storage with your own function.
    var accessToken = getAccessToken();
    var expiresAt = getAccessTokenExpiresAt();
    
    // Authenticate a user with the access token.
    KiiUser.authenticateWithToken(accessToken, null, expiresAt).then(
      function(theUser) {
        // Do something.
      }
    ).catch(
      function(error) {
        // Handle the error.
        var theUser = error.target;
        var errorString = error.message;
      }
    );

開発者ポータルでの設定

アクセストークンの有効期限のデフォルト値 / 最大値は、開発者ポータルから変更できます。アクセストークンに関するポリシーを設定することになるため、より確実な設定が期待できます。

設定方法は アクセストークンポリシーの設定 を参照してください。

対象 API

アクセストークンの有効期限を設定した場合、以下の API からログインした場合に設定が使用されます。

  • パスワードによるログイン

  • ユーザーの新規作成

  • 別サービスアカウントを利用したログイン(ネイティブアプリケーションによる認証)

以下は有効期限の影響を受けません。

  • 保存しておいたアクセストークンの指定によるログイン(初めのアクセストークンの有効期限が使用されます)

  • Kii Cloud SDK での保存情報からのログイン(初めのアクセストークンの有効期限が使用されます)

  • 仮ユーザー機能によるログイン(期限切れにならないよう、常にデフォルト値が使用されます)