ログインとアクセストークン

Kii Cloud ではログイン済みのユーザーをアクセストークンによって識別します。ログイン状態を管理するにはアクセストークンの扱いが重要となります。

アクセストークン

ユーザー登録やログインに成功すると、このユーザーは Kii Cloud に対してログインした状態になります。この際 Kii Cloud はユーザーに対してアクセストークンを発行します。アクセストークンは認証済みユーザーを識別するための文字列です。

クライアント SDK では、ログイン後に入手したアクセストークンをメモリ上に保持し、リクエストが行われるたびに Kii Cloud に送信します。これにより、Kii Cloud はログイン中のユーザーを識別することができます。アクセストークンはクライアント SDK の内部で保持され、後続の処理で自動的に参照されるため、モバイルアプリの実装から見ると、後続の処理でアクセストークンの存在を特に意識する必要はありません(ログイン中かどうかは意識する必要があります)。

REST では、HTTPS リクエストの Authorization ヘッダによって明示的にアクセストークンを指定します。ログインで取得したアクセストークンをモバイルアプリ側で自己管理します。

以下は Kii Cloud SDK でリクエストを行う際のアクセストークンの利用方法です。REST API を使用する場合は、自作するリクエストモジュールで Kii Cloud SDK と同等の作り込みが必要になるはずです。

アクセストークンがあれば、ユーザー名とパスワードを入力した場合と同様に、特定ユーザーの権限で Kii Cloud のデータにアクセスできます。アクセストークンをモバイルアプリで扱うときは、パスワードと同等のセキュリティを持つ情報として扱う必要があります。

アクセストークンに関連して、以下の場合は特殊な扱いとなります。

  • Kii Cloud SDK for Thing を使用した場合、Thing も専用の API によって Kii Cloud にログインし、アクセストークンを持った状態になります。詳細は Thing 管理 をご覧ください。

  • 仮ユーザー(Pseudo User)を使う場合、発行されたアクセストークンをモバイルアプリ側のコードで保持し続ける必要があります。詳細は 仮ユーザー(Pseudo User) をご覧ください。

ログイン状態の保持

アクセストークンはクライアント SDK のメモリ上に置かれるため、そのままではモバイルアプリの再起動によって失われます。

再起動後にログイン状態を復元するには、以下のいずれかの方法を使用します。

  • ユーザーにユーザー名やパスワードなどを再入力してもらい、もう一度ログインして新しいアクセストークンを取得します。
  • 前回のログイン時にアクセストークンを取得、保存しておき、再起動後にそのアクセストークンを使ってログインします。
  • Kii Cloud SDK が自動保存したアクセストークンなどの情報を使って再ログインします(Android と iOS のみ)。
  • REST API を使用する場合、アクセストークンをクライアント側で保存します。

アクセストークンによるログインを行うと、一旦ユーザー名やパスワードを使ってログインしたユーザーは、次回以降、その入力を省略できます。つまり、「ログイン状態を保持」のようなユーザーインターフェイスを実現できます。

ユーザーのパスワードが変更されると、アクセストークンは無効になります。この場合は、ユーザー名とパスワードを使ってログインを行い、新しいアクセストークンを取得してください。
また、ユーザーが無効化された場合も、アクセストークンは無効になります。

アクセストークンの互換性

各クライアント SDK で発行されたアクセストークンは SDK と REST の間で互換性があります。

たとえば、Kii Cloud SDK for Android を使用中に Android でサポートされていない機能を使用したい場合、SDK からアクセストークンを取得し、それを REST のアクセストークンとして使用できます。