Если вход одним касанием соответствует вашим потребностям, рассмотрите возможность его использования. One Tap имеет обновленный пользовательский интерфейс и другие улучшения.

Процесс интеграции с Android

Чтобы интегрировать Smart Lock for Passwords в ваше приложение для Android, вы должны добавить вызовы Credentials API в процесс запуска и входа вашего приложения. На следующей диаграмме показан поток типичного приложения для Android, использующего Smart Lock для паролей.

Хотя существует множество способов успешной интеграции Smart Lock для паролей, а особенности интеграции зависят от структуры и взаимодействия с пользователем приложения, для большинства приложений рекомендуется следующий порядок действий. Приложения, использующие этот поток, имеют следующие преимущества взаимодействия с пользователем:

  • Существующие пользователи вашей службы, у которых есть сохраненные учетные данные, сразу же входят в систему, и они переходят непосредственно к представлению входа в систему, когда открывают приложение.
  • Пользователям, у которых сохранено несколько учетных данных или у которых отключен автоматический вход, необходимо ответить только на одно диалоговое окно, прежде чем они перейдут к представлению входа в приложение.
  • Пользователи, у которых нет сохраненных учетных данных или которые еще не зарегистрировались, могут выбрать свое имя и адрес электронной почты одним касанием и автоматически перенаправляться в режим входа или регистрации с предварительно заполненной информацией.
  • Когда пользователи выходят из системы, приложение гарантирует, что они автоматически не войдут снова.

Схема процесса входа в Smart Lock

Получить учетные данные

  1. Когда приложение запускается, если ни один пользователь еще не вошел в систему, вызовите CredentialsClient.request() .
  2. Если Task выполнена успешно, получите учетные данные пользователя с помощью getResult().getCredential() и используйте их для входа.
  3. Если Task завершается сбоем и исключение является экземпляром ResolvableApiException , а getStatusCode() возвращает RESOLUTION_REQUIRED , для выбора учетных данных требуется ввод пользователя. Вызовите startResolutionForResult() , чтобы предложить пользователю выбрать сохраненную учетную запись, затем вызовите getParcelableExtra(Credential.EXTRA_KEY) , чтобы получить учетные данные пользователя и использовать их для входа.

Сохранить учетные данные

  1. Если Task завершается сбоем с ApiException и getStatusCode() возвращает SIGN_IN_REQUIRED , у пользователя нет сохраненных учетных данных, и он должен войти или зарегистрироваться вручную, используя текущий процесс входа или регистрации. После того, как пользователь успешно завершит вход, вы можете предоставить ему возможность сохранить свои учетные данные для последующего извлечения (шаг 5).

    Вы можете помочь пользователю войти или зарегистрироваться быстрее и проще, получая подсказки для входа, такие как адрес электронной почты пользователя. Пользователь может выбрать подсказку и пропустить ввод своих учетных данных. Если ваше приложение требует от пользователей входа в систему, вы можете выбрать получение подсказок сразу после сбоя первоначального запроса учетных данных (в противном случае вы можете подождать, пока пользователь не начнет процесс входа или регистрации).

    1. Вызовите CredentialsClient.getHintPickerIntent() и запустите намерение, чтобы предложить пользователю выбрать учетную запись, а затем вызовите getParcelableExtra(Credential.EXTRA_KEY) , чтобы получить подсказку для входа.
    2. Если идентификатор пользователя подсказки совпадает с идентификатором существующего пользователя, предварительно заполните им форму входа и позвольте пользователю ввести пароль для входа.
    3. Если идентификатор пользователя подсказки не соответствует существующему пользователю, предварительно заполните регистрационную форму, указав идентификатор и имя пользователя, и позвольте пользователю создать новую учетную запись.
  2. После того, как пользователь успешно войдет в систему или создаст учетную запись, сохраните идентификатор пользователя и пароль с помощью CredentialsClient.save() .

    Если пользователь вошел в систему с помощью федеративного поставщика удостоверений, такого как Google Sign-In, создайте объект Credential с адресом электронной почты пользователя в качестве идентификатора и укажите поставщика удостоверений с помощью setAccountType .

выход

  1. Когда пользователь выходит из системы, вызовите CredentialsClient.disableAutoSignIn() , чтобы предотвратить немедленный повторный вход пользователя. Отключение автоматического входа также позволяет пользователям легко переключаться между учетными записями, например между рабочей и личной учетными записями или между учетными записями. на общих устройствах — без повторного ввода данных для входа.

Готовы интегрировать Smart Lock for Passwords в свое приложение? Начать .