Простой способ сделать регистрацию на сайте проще

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

Но с недавних пор резко возросло число регистраций пользователей. Причем регистрации эти не подтверждаются. Вот и задумалось тут, зачем вносить данные в базу? Зачем потом эти же данные из базы удалять? Можно ведь сделать проще…

В начале регистрации пользователь вводит необходимые данные: логин, пароль и email. Сразу мы проверяем логин на уникальность и пароль на соответствие нормам. Если все хорошо, то на основе этих данных генерируем уникальную ссылку, которую отправляем пользователю по почте. (типа «Нажмите на эту ссылку, чтобы продолжить регистрацию на сайте»). В базу пользователей при этом абсолютно ничего не пишется. Если пользователь указал кривой email, или просто забыл/не посчитал нужным продолжить регистрацию — это его проблемы, мы про него не помним.

Уникальная ссылка выглядит примерно так:

login=pupkin&password=parol&email=pupkin@mail.ru&key=835637ac081c51c137c9f6174d01128b0cbcd243

где key — это sha1, завязанная на логин-пароль-email и какую-нибудь уникальную строку, которую знает только наш сервер.

Кстати, пароль при регистрации можно не спрашивать, и, соответственно, в уникальной ссылке не передавать, а генерировать автоматически и высылать после регистрации.

Когда пользователь нажмет на ссылку, мы тут же все про него вспомним (берем информацию о нем из уникальной ссылки, а не из базы) и заводим его в базе. Далее, если нужна дополнительная информация о пользователе, автоматически логиним и отправляем на его же незаполненную страницу пользователя. Если от пользователя больше ничего не требуется, отправляем его на главную страницу.

С точки зрения обычного пользователя все выглядит совсем просто: ему нужно всего-то ввести логин-пароль-email, после чего нажать на ссылку в письме.

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

Вот и все.


Комментарии

Оставить комментарий

Ответ на Простой способ сделать регистрацию на сайте проще