2016-05-27 3 views
1

Что является лучшей практикой для приложения android/ios со следующим сценарием:Каков наилучший способ внедрения активации учетной записи пользователя?

Клиентская компания отправляет нам электронные письма/номера. Мы создаем учетные записи для пользователей с отправленными данными. Каждый пользователь устанавливает приложение, регистрируется в электронной почте и -> в этот момент он/она должен доказать, что он/она является владельцем электронного письма, используемого для регистрации. Каков наилучший способ его реализации? Отправляет почту с некоторым кодом токена (какой пользователь должен вставить в наше приложение) хороший подход? Есть ли лучшие способы?

Цель - добиться аутентификации пользователя, установившего приложение, при минимальных усилиях как для пользователя, так и для компании-клиента.

ответ

2

Если вам нужно просто активировать аккаунт, решение от James Lambert будет достаточно хорошим.

Но, как я понял, вы хотите идентифицировать пользователя приложения по электронной почте. И, как я понял, другая компания собирает все данные пользователя (включая электронную почту, которая может быть любой электронной почтой, а не только учетной записью google на телефоне пользователя) и отправки ее вам, но эти данные не содержат пароль или что-то еще, что аутентифицировать этого пользователя.

ИМО вы можете сделать такую ​​проверку подлинности в приложении:

  1. пользователя в приложение входит в его адрес электронной почты и нажмите кнопку «Далее».
  2. App сделать запрос на ваш сайт с его электронной почтой.
  3. Ваш веб-сайт отправляет вам адрес электронной почты с одноразовым пин-кодом
  4. Пользователь вводит этот пин-код в приложении (не используйте сложные маркеры, которые пользователь должен скопировать-вставить, это просто еще один барьер для неопытного пользователя)
  5. Приложение общается с веб-сайтом, который проверяет PIN-код и генерирует ключ shared secret, после чего оба сохраняют этот ключ, который будет использоваться при запуске приложения в следующий раз.

Обновление: Шаг 5 может сильно различаться в зависимости от целей аутентификации. Мой вариант может использоваться для простого отслеживания пользователей, но он определенно не применим для финансовых приложений или других приложений, которые работают с конфиденциальными данными (из-за duplication issue).

+0

Когда вы говорите «токен безопасности», вы говорите об токене, используемом для авторизации? как OAuth? Если да, то какое достаточно безопасное место для сохранения этого на мобильном? –

+0

Обновление: исправлена ​​терминология.Вы можете сохранить его в папке с данными по умолчанию в приложении, которую нельзя прочитать другим приложениям (не во внешней карте, которую можно прочитать в любом приложении). Смотрите здесь: [Параметры хранилища] (https://developer.android.com/guide/topics/data/data-storage.html) –

2

При создании учетной записи создайте случайный токен. Храните этот случайный токен с электронной почтой на сервере. В электронном письме вы включаете ссылку, которая предоставляет токен и электронную почту как параметр строки запроса. Сервер проверяет токен, указанный в URL-адресе, с тем, который хранится в базе данных. Если они совпадают, вы активируете учетную запись и возвращаете пользователю сообщение о том, что учетная запись активирована. Я не вижу большой пользы в том, чтобы заставить пользователя проверять приложение, я бы просто открыл ссылку в веб-браузере.

+0

Можете ли вы разбить это на пулевые точки ... 1.), 2.), 3.) и т. Д. –

+0

Это звучит неплохо, но, похоже, добавляет еще один шаг входа пользователей, так что, возможно, усилия для пользователя (они попадают на веб-страницу, которую они никогда не используют). Опция в приложении может быть более простой в том смысле, что ввод кода приводит пользователя к другому действию, где они устанавливают свой пароль, и они хороши для перехода. Хотя, безопасность мудрая, они звучат почти так же. (если мы игнорируем код активации, который хранится в истории браузеров и тому подобное) –

Смежные вопросы