アクセストークンの指定によるログイン
SDK からアクセストークンを取得して、アプリ側で用意したストレージに保存できます。プロセスの再起動後は保存しておいたアクセストークンを使ってログインできます。
発行されたアクセストークンは getAccessToken
メソッドを実行するか、getAccessTokenBundle
メソッドを実行してバンドルを取得した後に access_token
キーの値を取得することで入手できます。いずれの場合も対象ユーザーがログインしている状態で実行してください。以下に、両方の方法の例を挙げます。
// Assume that a user has logged in.
// Method #1: Get an access token with the getAccessToken() method.
String accessToken = KiiUser.getCurrentUser().getAccessToken();
// Method #2: Get an access token with the getAccessTokenBundle() method.
Bundle b = KiiUser.getCurrentUser().getAccessTokenBundle();
accessToken = b.getString("access_token");
// Securely store the access token in the storage with your own function.
storeToken(accessToken);
アクセストークンを使ってログインを行う例を以下に挙げます。例のようにアクセストークンを指定して loginWithAccessToken
メソッドを実行します。
-
// Get an access token from the storage with your own function. String accessToken = getStoredToken(); try { // Authenticate a user with the access token. KiiUser.loginWithToken(accessToken); } catch (IOException e) { // Handle the error. } catch (AppException e) { // Handle the error. }
-
// Get an access token from the storage with your own function. String accessToken = getStoredToken(); // Authenticate a user with the access token. KiiUser.loginWithToken(new KiiUserCallBack() { @Override public void onLoginCompleted(int token, KiiUser user, Exception exception) { if (exception != null) { // Handle the error. return; } } }, accessToken);
取得したアクセストークンを保存する場合は、他のアプリから不正に参照できない安全な場所を選択してください。アクセストークンがあれば、ログインしたユーザーの権限で Kii Cloud の領域にアクセスできるため、機密情報として扱う必要があります。
この方法では、アクセストークンをモバイルアプリから自由に操作できるため、複数ユーザーの切り替えも実現できます。対象ユーザーを順番にログインしてアクセストークンを取得しておき、それら複数のアクセストークンを場面に応じて切り替えながら SDK に設定できます(クライアント SDK 内ではアクセストークンを 1 件しか保持できないため、SDK 内で複数ユーザーを同時にログイン状態にすることはできません)。
なお、アクセストークンの指定によるログインではアクセストークンしか復帰できないため、リフレッシュトークン の利用はできません。リフレッシュトークンを使用する場合は、SDK による保存情報からのログイン に示す方法を使ってログインする必要があります。