Требовать уникальную электронную почту, не разглашая электронные письма существующих пользователей - PullRequest
4 голосов
/ 04 сентября 2010

В стандартной веб-форме регистрации пользователи должны иметь уникальный электронный адрес для сайта.

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

Убедиться, что бот не может массово запрашивать, довольно просто - но есть ли способчтобы полностью этого избежать?

Лучшее, что я могу придумать, - позволить процессу создания пользователя потерпеть неудачу с неизвестной ошибкой и отправить электронное письмо на адрес в фоновом режиме, объясняя процедуры сброса пароля.1008 * Мне не хватает лучшего варианта?

Обновление:

Я хочу не выводить нового пользователя из процесса регистрации на 99,9% времени, когда электронная почта действительно уникальна.Поэтому приостановка процесса регистрации в ожидании того, что пользователь щелкнет ссылку в электронном письме, не является идеальным решением, хотя в некоторых случаях может оказаться целесообразным.

Ответы [ 3 ]

3 голосов
/ 04 сентября 2010

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

"You allready have an accout bla, click here to cancel this registration, or continue with new registration and delete your current account"

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

1 голос
/ 04 сентября 2010

Вы можете напечатать на веб-странице что-то вроде этого:

Вам будет отправлено электронное письмо для проверки адреса электронной почты.Проверьте свою почту и нажмите на включенную (shared-secret) ссылку.

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

0 голосов
/ 04 сентября 2010

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

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

Какая бы ни была платформа веб-разработки, вероятно, имеет пакет, который обрабатывает письма с подтверждением.

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

ДОБАВЛЕНО : Вы добавляете, что вам не нужно электронное письмо с подтверждением, чтобы регистрация сразу началась. Это требование противоречит уникальным адресам электронной почты, потому что вы не знаете, что адрес электронной почты, предоставленный пользователем, является законным, пока он не будет подтвержден, и нет никакого смысла в обеспечении уникальности выбранной пользователем строки, которая случайно отформатирована как адрес электронной почты (если вам нужно уникальное имя пользователя, его не нужно форматировать как адрес электронной почты).

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...