Каковы плюсы и минусы использования адреса электронной почты в качестве идентификатора пользователя?

StackOverflow https://stackoverflow.com/questions/647172

Вопрос

Я создаю веб-приложение, для которого требуется регистрация / аутентификация, и я рассматриваю возможность использования адреса электронной почты в качестве единственного идентификатора пользователя.Вот то, что я считаю плюсами и минусами (дополнено ответами):

ПЛЮСЫ

  1. На одно поле меньше, чем нужно заполнить при регистрации (это будет просто адрес электронной почты, пароль и подтверждение пароля).Я большой поклонник минималистичного оформления.

  2. Адрес электронной почты легче запомнить.(спасибо Митч, Джереми)

  3. Вам не нужно беспокоиться о том, что ваше любимое имя пользователя уже занято - вы единственный, кто использует ваш адрес электронной почты.(спасибо ТШтампер)

МИНУСЫ

  1. Пользователю нужно вводить больше данных каждый раз, когда он входит в систему.

  2. Что делать, если пользователю нужно несколько учетных записей?Им понадобится другой адрес электронной почты.(Хочу ли я вообще, чтобы пользователь мог создавать несколько учетных записей?)

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

  4. У пользователей может возникнуть соблазн использовать тот же пароль, который они используют для своей учетной записи электронной почты, что является плохой защитой.(спасибо Томас)

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

  6. Хакер может рассылать спам по регистрационной форме и использовать ответы "электронное письмо уже принято" для создания списка действительных электронных писем.(спасибо Дэвид)

  7. Не у всех есть адрес электронной почты.(спасибо Николас)

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

Другой вариант - реализовать OpenID (это совершенно другой вопрос).

Кажется, это работает для Google, но их сервисы тесно интегрированы.Что я упустил в своем анализе?У вас есть какие-нибудь рекомендации?У кого-нибудь есть опыт, которым можно поделиться?

ОКОНЧАТЕЛЬНОЕ РЕДАКТИРОВАНИЕ

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

Это было полезно?

Решение

Я, как правило, не предпочитаю списки "за" и "против", а вместо этого пытаюсь думать о преимуществах и проблемах.

Вызов:

У некоторых пользователей возникнет соблазн использовать свой адрес электронной почты от своего интернет-провайдера.Ссылка только на электронное письмо может быть затруднена для пользователей, которые забывают обновить свою электронную почту на всех веб-сайтах, на которые они подписались, прежде чем сменить интернет-провайдера.

Вместо этого:

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

Другие советы

Лично я предпочитаю просто использовать свой адрес электронной почты в качестве имени пользователя. Это еще одна вещь, которую нужно помнить, и мне никогда не придется беспокоиться о том, что мое предпочтительное имя уже занято.

Только мои 2 цента!

Я думаю, что вы пропустили ПРО:

Пользователи могут запомнить свой адрес электронной почты; и поскольку адреса электронной почты уникальны, им никогда не придется беспокоиться о том, что их предпочтительное имя пользователя уже занято.

CONS

  1. Если для учетной записи электронной почты используется один и тот же пароль, компрометация одного автоматически означает компрометацию другого.

Как пользователь веб-сайтов, я могу сказать, что ненавижу запоминать ненужные имена пользователей. Я не использую уникальный дескриптор или что-то еще, поэтому я никогда не смогу вспомнить, какой вариант моего имени, который я использовал, еще не использовался. Я бы предпочел ввести свой адрес электронной почты.

Также мне нравится OpenID.

CON: не у всех есть адрес электронной почты. Подумайте, есть ли когда-нибудь доступ к вашей базе данных из внутреннего приложения. Если вы работаете в магазине, люди позвонят и позвонят по телефону и откажутся предоставить адрес электронной почты. Так что, имея адрес электронной почты в качестве идентификатора пользователя по умолчанию, это здорово, не забудьте разрешить альтернативам попадать в систему. (Конечно, это зависит от контекста.)

Изучил этот трудный путь.

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

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

профессиональный

Люди ненавидят необходимость создавать уникальное имя, соответствующее их идентификатору, которое еще не было использовано при регистрации на сайте..Вот почему идентификатор пользователя как Эл. адрес это так обнимает.

бывший:TStamper1930, который на самом деле хочет запомнить 1930 год в конце моего имени, чего я действительно хотел

CON: Если хакер может попытаться зарегистрировать случайные адреса электронной почты в массовом порядке, он сможет выяснить, какие из этих адресов действительны, в зависимости от того, какая регистрация не удалась. Это тактика, которая может использоваться для составления списков известных действительных адресов электронной почты, которые являются популярным товаром на черном рынке спама.

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

CON: Если я изменю свой адрес электронной почты, внезапно все имена моих учетных записей станут недействительными. Мое имя не меняется, но мой адрес электронной почты часто меняется. Я иногда посещал сайт через несколько лет и застревал ... какой у меня был электронный адрес два года назад ???

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

Вам не следует беспокоиться о том, что они слишком длинные, поскольку все основные браузеры (IE, FF и т. д.) предлагают автозаполнение форм, которое включено по умолчанию, поэтому вы вводите первые буквы в своем письме и получаете раскрывающийся список (т. е. список автозаполнения), в котором вы просто нажимаете, чтобы ввести всю электронную почту, лично я почти никогда не набираю адрес электронной почты полностью, я всегда набираю первые буквы, а затем выбираю электронную почту в раскрывающемся списке автозаполнения. Кроме того, если вы разрешите запоминание пользователей (используя флажок «Запомнить меня» и постоянные файлы cookie), это станет еще одной причиной, чтобы не беспокоиться об этом.

Я не знаю о вашем приложении, но обычно пользователи, имеющие несколько учетных записей, нежелательны в большинстве приложений.

Одним из доводов может быть то, что, если это адрес электронной почты, логин может быть угадан людьми и предприняты попытки перебора. Что не является большой проблемой, так как на большинстве сайтов сегодня логины отображаются публично.

Самый большой плюс в том, что логины легче запомнить таким образом.

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

Чтобы решить вашу проблему с тем, что электронное письмо слишком длинное, чтобы вводить его каждый раз.Я реализовал библиотеку StringScan Ruby.

require 'strscan'    
def signup!(user, &block)    
self.email = user[:email] unless user[:email].blank?    
str = StringScanner.new(self.email)    
str.scan_until(/@/)    
str.pre_match    
self.login = str.pre_match

и т.д..

Затем просто измените способ входа, чтобы адрес электронной почты или логин соответствовали паролю.

Это работает так же, как Google или mobileme.Пользователь может просто ввести имя пользователя своей электронной почты (т.е.имя пользователя вместо username@gmail.com.)

Если вам не нужно заставлять своих пользователей входить в ваше приложение через Facebook или какую-либо другую социальную сеть (большинство людей не заботятся об этом), то вы можете просто использовать электронную почту их социальной сети в качестве своего «идентификатора пользователя». 'при обращении к другим таблицам / документам (MySQL, Mongo и т. д.).

Я заметил, что бонусом к использованию входа в социальные сети является то, что вся социальная сеть позаботилась о безопасности, в том числе не позволяя двум пользователям иметь одинаковые адреса электронной почты или имена пользователей в своей базе данных, тем самым избавляя вас от хлопот приходится кодировать все это. Это всего лишь мое личное предпочтение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top