アクセストークンを管理する
このトピックでは、以下のアクセストークン管理タスクの実行方法について説明します。
安全にユーザー登録およびログインを処理する方法については、「アプリとサーバーの間で安全なログインプロセスを構築する」を参照してください。
アクセストークンを更新する
認可が成功したあと、ユーザーの有効なアクセストークンがLINE SDKによって保存されます。このアクセストークンを使って、APIリクエストが実行されます。アクセストークンの有効期間は以下のようにして取得できます。
LineApiClientインターフェイスを介してAPIリクエストが実行されるとき、有効期限が切れたアクセストークンは自動的に更新されます。ただし、アクセストークンが失効してから長期間が経過していると、更新操作は失敗します。その場合はエラーが発生し、ユーザーを再ログインさせる必要があります。
開発者自身がアクセストークンを更新することは推奨されません。LINE SDKによるアクセストークンの自動管理に任せるほうが、将来のアップグレードを考えるとより簡単で安全な方法です。ただし、以下のようにしてアクセストークンを手動で更新できます。
現在のアクセストークンを取得する
クライアントサーバーアプリケーションでは、アプリとサーバーの間でユーザー情報を送受信する際に、アクセストークンを使用してください。アプリで取得したアクセストークンをサーバーに送信すると、サーバーでLINEログインAPIを呼び出すことができます。LINEログインAPIについて詳しくは、『LINEログイン v2.1 APIリファレンス』を参照してください。
アプリでLINE SDKが保存しているアクセストークンを取得するには、以下のようにgetCurrentAccessToken()メソッドを呼び出します。
サーバーにアクセストークンを送信するときは、トークンを暗号化し、暗号化したデータをSSLで送信することをお勧めします。サーバーで受信したアクセストークンと、LINEログインの呼び出しに使用するアクセストークンが一致すること、さらにLINEログインの呼び出しに使用するチャネルIDが自分のチャネルのIDと一致することも、検証する必要があります。
アクセストークンを検証する
LINE SDKが保存しているアクセストークンの有効性をアプリで検証するには、verifyToken()メソッドを呼び出します。結果が含まれるLineApiResponseオブジェクトが返されます。次にisSuccess()メソッドを呼び出して、トークンの有効性を確認できます。
isSuccess()メソッドからtrueが返される場合は、トークンは有効です。そうでない場合は、アクセストークンが無効または期限切れであるか、何らかの理由でLINE SDK内でLINEログインAPIの呼び出しに失敗しています。
isSuccess()メソッドからfalseが返される場合は、LineApiResponse.getErrorData()メソッドを使用してverifyToken()メソッドが失敗した原因を確認できます。なお、この場合は、getResponseData()メソッドからnullが返されます。
アクセストークンに関連付けられているスコープのリストを取得するには、LineApiResponse.getResponseData().getScopes()メソッドを呼び出します。以下の例では、トーストでアクセストークンのスコープのリストを表示する方法を示しています。