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

Интеграция с Android

Чтобы интегрировать Smart Lock для паролей в приложение Android, необходимо добавить вызовы 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 для паролей в свое приложение? Начни .