アクセストークンの指定によるログイン

SDK からアクセストークンを取得して、アプリ側で用意したストレージに保存できます。プロセスの再起動後は保存しておいたアクセストークンを使ってログインできます。

発行されたアクセストークンは accessToken メソッドを実行するか、getAccessTokenDictionary メソッドを実行して Dictionary を取得した後に access_token キーの値を取得することで入手できます。いずれの場合も対象ユーザーがログインしている状態で実行してください。以下に、両方の方法の例を挙げます。

Swift:

// Assume that a user has logged in.

// Method #1: Get an access token from the accessToken property.
let token1 = KiiUser.current()!.accessToken

// Method #2: Get an access token with the accessTokenDictionary() method.
let dictionary = KiiUser.current()!.accessTokenDictionary()!
let token2 = dictionary["access_token"] as! NSString

// Securely store the access token in the storage with your own function.
storeToken(token)

Objective-C:

// Assume that a user has logged in.

// Method #1: Get an access token from the accessToken property.
NSString *token = [[KiiUser currentUser] accessToken];

// Method #2: Get an access token with the accessTokenDictionary method.
NSDictionary *dictionary = [[KiiUser currentUser] accessTokenDictionary];
token = [dictionary objectForKey:@"access_token"];

// Securely store the access token in the storage with your own function.
[self storeToken:token];

アクセストークンを使ってログインを行う例を以下に挙げます。例のようにアクセストークンを指定して authenticateWithToken:andBlock メソッドを実行します。

Swift:

  • // Get an access token from the storage with your own function.
    let token = getStoredToken()
    
    do{
      // Authenticate a user with the access token.
      try KiiUser.authenticate(withTokenSynchronous: token)
    }catch let error as NSError {
      // Handle the error.
      return
    }
  • // Get an access token from the storage with your own function.
    let token = getStoredToken()
    
    // Authenticate a user with the access token.
    KiiUser.authenticate(withToken: token, andBlock:{(usr , error )->Void in
      if (error != nil) {
        // Handle the error.
        return
      }
    })

Objective-C:

  • NSError *error;
    
    // Get an access token from the storage with your own function.
    NSString *token = [self getStoredToken];
    
    // Authenticate a user with the access token.
    [KiiUser authenticateWithTokenSynchronous:token
                                     andError:&error];
    if (error != nil) {
      // Handle the error.
      return;
    }
  • // Get an access token from the storage with your own function.
    NSString *token = [self getStoredToken];
    
    // Authenticate a user with the access token.
    [KiiUser authenticateWithToken:token
                          andBlock:^(KiiUser *user, NSError *error) {
      if (error != nil) {
        // Handle the error.
        return;
      }
    }];

取得したアクセストークンを保存する場合は、他のアプリから不正に参照できない安全な場所を選択してください。アクセストークンがあれば、ログインしたユーザーの権限で Kii Cloud の領域にアクセスできるため、機密情報として扱う必要があります。

この方法では、アクセストークンをモバイルアプリから自由に操作できるため、複数ユーザーの切り替えも実現できます。対象ユーザーを順番にログインしてアクセストークンを取得しておき、それら複数のアクセストークンを場面に応じて切り替えながら SDK に設定できます(クライアント SDK 内ではアクセストークンを 1 件しか保持できないため、SDK 内で複数ユーザーを同時にログイン状態にすることはできません)。

なお、アクセストークンの指定によるログインではアクセストークンしか復帰できないため、リフレッシュトークン の利用はできません。リフレッシュトークンを使用する場合は、SDK による保存情報からのログイン に示す方法を使ってログインする必要があります。