SDK による保存情報からのログイン
SDK 側で自動保存されたアクセストークンやそれに関連する情報を使ってログインする方法です。ログインまたはユーザーのリフレッシュ成功時に、SDK 側でストレージに認証結果が自動保存されており、プロセスの再起動時にそれらの情報を使ってログインできます。
Kii Cloud SDK を初期化する際に android.content.Context
のインスタンスを指定することでログイン中のユーザーの認証情報を SharedPreferences に自動的に保存するようにできます。保存される情報は以下のとおりです。
- ユーザー ID
- ユーザー名
- メールアドレス
- 電話番号
- ディスプレイネーム
- 所在国
- アクセストークン
- アクセストークンの有効期限
- リフレッシュトークン
ログアウトを呼び出されたタイミングでのみ、これらの情報が削除されます。
この保存されている認証情報を使ってログインを行う例を示します。
認証情報が SharedPreferences に保存されている場合、loginWithStoredCredentials()
メソッドを実行することでログインすることができます。このメソッドはサーバーにアクセスすることはなく SharedPreferences からログイン状態を復元するメソッドです。ユーザーの最新情報を取得する場合は別途、refresh()
メソッドを実行してください。
保存されている認証情報は logOut()
メソッドを実行することで SharedPreferences から削除することができます。ログアウト後に loginWithStoredCredentials()
メソッドを呼び出すと UserCredentialsNotFoundException
例外が発生します。
loginWithStoredCredentials()
メソッドによるログインの際、モバイルアプリのインストール直後は認証情報が存在しないため、必ず UserCredentialsNotFoundException
例外が発生します。ユーザー名とパスワードなどを使ってログインしたにもかかわらず、毎回 UserCredentialsNotFoundException
例外が発生する場合は、Kii Cloud SDK の 初期化 の際にコンテキスト情報を指定していることを確認してください。
再ログインを実行するかどうかにかかわらず、アクセストークン等の情報は、ログインやリフレッシュの実行時に常に保存されています。
仮ユーザーを使用する場合でも、仮ユーザーの作成直後に KiiUser
の refresh()
メソッドを呼び出すことで、loginWithStoredCredentials()
メソッドによるログインを行うことができます。
モバイルアプリを設計する際は、Kii Balance チュートリアルの 内部状態の復元 を参考に、永続化と画面遷移を実現してください。