One Tap 로그인이 요구 사항을 충족하는 경우 대신 사용하는 것이 좋습니다. One Tap에는 업데이트 된 사용자 경험과 기타 개선 사항이 있습니다.

Android 통합 흐름

비밀번호 대용 Smart Lock을 Android 앱에 통합하려면 앱의 시작 및 로그인 흐름에 Credentials API 에 대한 호출을 추가해야합니다. 다음 다이어그램은 비밀번호 대용 Smart Lock을 사용하는 일반적인 Android 앱의 흐름을 보여줍니다.

비밀번호 대용 Smart Lock을 성공적으로 통합하는 방법에는 여러 가지가 있으며 통합의 세부 사항은 앱의 구조 및 사용자 환경에 따라 다르지만 대부분의 앱에는 다음 흐름이 권장됩니다. 이 흐름을 사용하는 앱에는 다음과 같은 사용자 경험 이점이 있습니다.

  • 단일 자격 증명이 저장된 기존 서비스 사용자는 즉시 로그인되며 앱을 열면 로그인 한보기로 바로 이동합니다.
  • 여러 자격 증명이 저장되어 있거나 자동 로그인을 비활성화 한 사용자는 앱의 로그인보기로 이동하기 전에 하나의 대화 상자에만 응답해야합니다.
  • 저장된 자격 증명이 없거나 아직 가입하지 않은 사용자는 탭 한 번으로 이름과 이메일을 선택하고이 정보가 미리 입력 된 상태로 로그인 또는 가입보기로 지능적으로 보낼 수 있습니다.
  • 사용자가 로그 아웃하면 앱은 자동으로 다시 로그인되지 않도록합니다.

Smart Lock 로그인 흐름 다이어그램

자격 증명 검색

  1. 앱이 시작될 때 이미 로그인 한 사용자가 없으면 CredentialsClient.request() 호출합니다.
  2. Task 이 성공하면 getResult().getCredential() 을 사용하여 사용자의 자격 증명을 가져 와서 로그인에 사용합니다.
  3. Task 가 실패하고 예외가 ResolvableApiException 의 인스턴스이고 getStatusCode()RESOLUTION_REQUIRED 반환하는 경우 자격 증명을 선택하려면 사용자 입력이 필요합니다. startResolutionForResult() 를 호출하여 사용자에게 저장된 계정을 선택하라는 메시지를 표시 한 다음 getParcelableExtra(Credential.EXTRA_KEY) 를 호출하여 사용자의 자격 증명을 가져 와서 로그인에 사용합니다.

자격 증명 저장

  1. ApiException 인해 Task 이 실패하고 getStatusCode()SIGN_IN_REQUIRED 반환하는 경우 사용자는 저장된 자격 증명이 없으며 현재 로그인 또는 가입 흐름을 사용하여 수동으로 로그인하거나 가입해야합니다. 사용자가 로그인을 성공적으로 완료 한 후 사용자가 향후 검색을 위해 자격 증명을 저장할 수있는 기회를 제공 할 수 있습니다 (5 단계).

    사용자의 이메일 주소와 같은 로그인 힌트를 검색하여 사용자가 더 빠르고 쉽게 로그인하거나 가입하도록 도울 수 있습니다. 사용자는 힌트를 선택하고 자격 증명 입력을 건너 뛸 수 있습니다. 앱에서 사용자 로그인을 요구하는 경우 초기 자격 증명 요청이 실패한 직후에 힌트를 검색하도록 선택할 수 있습니다 (그렇지 않으면 사용자가 로그인 또는 가입 흐름을 시작할 때까지 기다릴 수 있음).

    1. CredentialsClient.getHintPickerIntent() 호출하고 사용자에게 계정을 선택하라는 메시지를 표시하는 인 텐트를 시작한 다음 getParcelableExtra(Credential.EXTRA_KEY) 를 호출하여 로그인 힌트를 가져옵니다.
    2. 힌트의 사용자 ID가 기존 사용자와 일치하는 경우 로그인 양식을 미리 채우고 사용자가 로그인 할 비밀번호를 입력하도록합니다.
    3. 힌트의 사용자 ID가 기존 사용자와 일치하지 않는 경우 가입 양식에 사용자의 ID와 이름을 미리 입력하고 사용자가 새 계정을 만들도록합니다.
  2. 사용자가 성공적으로 로그인하거나 계정을 만든 후 CredentialsClient.save() 사용하여 사용자 ID와 암호를 저장합니다.

    사용자가 Google 로그인과 같은 제휴 ID 제공 업체로 로그인 한 경우 사용자의 이메일 주소를 ID로 사용하여 Credential 객체를 만들고 setAccountType ID 공급 업체를 지정합니다.

로그 아웃

  1. 사용자가 로그 아웃하면 CredentialsClient.disableAutoSignIn() 을 호출하여 사용자가 즉시 다시 로그인되지 않도록합니다. 자동 로그인을 비활성화하면 사용자가 계정간에 쉽게 전환 할 수 있습니다 (예 : 회사 계정과 개인 계정 간 또는 계정 간). 로그인 정보를 다시 입력 할 필요없이 공유 장치에서.

비밀번호 대용 Smart Lock을 앱에 통합 할 준비가 되셨나요? 시작하십시오 .