Smart Lock for Passwords を Android アプリに統合するには、Credentials API の呼び出しをアプリの起動とログインのフローに追加する必要があります。次の図は、Smart Lock for Passwords を使用する一般的な Android アプリのフローを示しています。
Smart Lock for Passwords を正常に統合する方法は多数あり、統合の具体的な内容はアプリの構造とユーザー エクスペリエンスによって異なりますが、ほとんどのアプリで次のフローをおすすめします。このフローを使用するアプリには、ユーザー エクスペリエンスに関して次のような利点があります。
- 1 つの認証情報が保存されているサービスの既存のユーザーは、すぐにログインし、アプリを開くとログイン済みのビューに直接移動します。
- 複数の認証情報を保存しているユーザーや、自動ログインを無効にしているユーザーは、1 つのダイアログにのみ応答するだけでアプリのログインビューに移動できます。
- 認証情報が保存されていないユーザーや登録をしていないユーザーは、1 回のタップで自分の名前とメールアドレスを選択し、その情報が事前に入力されているログインビューまたは登録ビューにインテリジェントに送信されます。
- ユーザーがログアウトしたときに、アプリが自動的に再ログインしないようにします。
認証情報を取得する
- アプリの起動時に、まだログインしているユーザーがいない場合は、
CredentialsClient.request()
を呼び出します。 Task
が成功したら、getResult().getCredential()
でユーザーの認証情報を取得し、それを使用してログインします。Task
が失敗し、例外がResolvableApiException
のインスタンスであり、getStatusCode()
がRESOLUTION_REQUIRED
を返す場合、認証情報を選択するためにユーザー入力が必要になります。startResolutionForResult()
を呼び出して、保存済みアカウントを選択するようにユーザーに促してから、getParcelableExtra(Credential.EXTRA_KEY)
を呼び出してユーザーの認証情報を取得し、ログインに使用します。
認証情報を保存
Task
がApiException
で失敗し、getStatusCode()
がSIGN_IN_REQUIRED
を返した場合、ユーザーは保存されている認証情報がないため、現在のログインまたは登録フローを使用して手動でログインするか、登録する必要があります。ユーザーがログインに成功したら、今後取得できるように認証情報を保存する機会をユーザーに提供できます(ステップ 5)。ユーザーのメールアドレスなどのログインのヒントを取得することで、ユーザーのログインや登録をすばやく簡単に行うことができます。ユーザーはヒントを選択すると、認証情報の入力をスキップできます。アプリでユーザーにログインを求める場合は、最初の認証情報リクエストが失敗した場合、すぐにヒントを取得できます(それ以外の場合は、ユーザーがログインフローまたは登録フローを開始するまで待つことができます)。
CredentialsClient.getHintPickerIntent()
を呼び出してインテントを開始し、ユーザーにアカウントの選択を促してから、getParcelableExtra(Credential.EXTRA_KEY)
を呼び出してログインのヒントを取得します。- ヒントのユーザー ID が既存のユーザーと一致する場合は、その ID を事前にログイン フォームに入力し、ユーザーがパスワードを入力してログインできるようにします。
- ヒントのユーザー ID が既存のユーザーと一致しない場合は、登録フォームにユーザーの ID と名前を事前に入力し、ユーザーが新しいアカウントを作成できるようにします。
-
ユーザーがログインに成功するか、アカウントを作成したら、
CredentialsClient.save()
でユーザー ID とパスワードを保存します。ユーザーが Google ログインなどのフェデレーション ID プロバイダを使用してログインした場合は、ユーザーのメールアドレスを ID として使用して
Credential
オブジェクトを作成し、setAccountType
で ID プロバイダを指定します。
ログアウト
- ユーザーがログアウトしたら、
CredentialsClient.disableAutoSignIn()
を呼び出して、ユーザーがすぐに再ログインできないようにします。また、自動ログインを無効にすると、ユーザーはアカウントを簡単に切り替えられるようになります。たとえば、仕事用と個人用のアカウント、共有デバイス上のアカウント間で、ログイン情報を再入力する必要はありません。
Smart Lock for Passwords をアプリに統合しましょう 参加方法はこちらをご覧ください。