Я создаю веб-приложение, которое требует регистрации/аутентификации, и я рассматриваю использование адреса электронной почты как единственного идентификатора пользователя. Вот что я вижу в качестве плюсов и минусов (обновляется с ответами):
ПРОФИ
-
Еще одно поле для заполнения во время регистрации (это будет только адрес электронной почты, пароль и подтверждение пароля). Я большой поклонник минималистской регистрации.
-
Адрес электронной почты легче запомнить. (спасибо Mitch, Jeremy)
-
Вам не нужно беспокоиться о том, что ваше любимое имя пользователя уже принято - вы единственный, кто использует ваш адрес электронной почты. (спасибо TStamper)
CONS
-
Пользователь имеет больше, чтобы вводить каждый раз при входе в систему.
-
Что делать, если пользователь хочет несколько учетных записей? Им понадобится другой адрес электронной почты. (Я даже хочу, чтобы пользователь мог создавать несколько учетных записей?)
-
Легко для потенциального злоумышленника угадать (если они знают целевой адрес электронной почты, они знают идентификатор входа). (спасибо Vasil)
-
У пользователей может возникнуть соблазн использовать тот же пароль, который они используют для своей учетной записи электронной почты, что является плохой безопасностью. (спасибо Thomas)
-
Если вы часто меняете адреса электронной почты, может быть сложно запомнить, какой адрес вы использовали для регистрации на сайте после долгого перерыва. (спасибо Software Monkey)
-
Хакер может спамить регистрационную форму и использовать ответы "уже отправленные письма" для создания списка действительных писем. (спасибо David)
-
Не все имеют адрес электронной почты. (спасибо Nicholas)
Если я отправился с адресом электронной почты как id, я бы предоставил механизм, позволяющий его изменять в случае изменения пользователем адреса. В этом случае пользователи не будут размещать контент на общедоступном сайте, поэтому отдельное имя пользователя не потребуется для защиты адресов электронной почты (но это то, что нужно учитывать для других сайтов).
Другой вариант - это реализовать OpenID (это еще одна дискуссия).
Это, похоже, работает для Google, но их услуги тесно интегрированы. Что я пропустил в своем анализе? У вас есть какие-нибудь рекомендации? У кого-нибудь есть опыт для обмена?
ОКОНЧАТЕЛЬНОЕ ИЗОБРАЖЕНИЕ
Спасибо всем за ваши ответы. Я решил использовать электронную почту как идентификатор, но затем разрешить создание имени пользователя для входа в систему после регистрации. Это позволяет получить небольшую гибкость, сохраняя при этом регистрацию как можно короче. Это также предотвращает проблемы, когда пользователь меняет адреса электронной почты (они могут просто войти в систему со своим именем пользователя и обновить его). Я также буду внедрять методы предотвращения грубого форсирования адресов электронной почты из систем регистрации и входа в систему (в основном, период охлаждения после повторных попыток).