Вы сейчас здесь
«Облако» тэгов
link, small, tagless, tiny, 2003, big, 2008, 2010, январь, декабрь, сентябрь, 2001, 2004, 2002, август, апрель, март, июль, 2009, игры, октябрь, май, июнь, февраль, 2007, ноябрь, img, 2011, quote, wow, huge, блоги, кино, игровой дизайн, ребенок, половой вопрос, технологии, вебдев, lytdybr, фразы, живой журнал, жизнь, язык, яндекс, php, 2006, людишки, 2005, поисковики, software, video, inglish, 2000, смишно, диалоги, музыка, книги, культ личности, дейтинг, политика, интернет, 1999, rss, контент, flash, я, авторские проекты, реклама, прон, next-gen mmo, ореховые скорлупки, сми, js, программирование, fight club, register, социгры, спам, english reviews, американас, потребление, беллетристика, идеи, мое величие, iphone, usability, пидорасты, battle.net, lifestyle, starcraft 2, Тёма, соционика, spectator.ru, британские ученые, развитие, Масква, бабло, литература, фото, mobile, work, болкман, титаны, hard, hobius, mysql, интеллектуальный юмор, хостинг, blogowar.ru, графика, SEO, blogowar, magic, журналистика, злоба дня, религия, стартапы, social, tf2, цитаты, gzip, warhammer, браузеры, велосипед, киви, медикаментоз, общество, оговорки, html, воспитание, мифы, паранойа, письма в редакцию, учеба, 1998, soft, soviet, twdnkumus, глянцевые журналы, монетизация, норкотики, сайты, сиськи, типографика, тьюринг, mongodb, дизайн, железо, живут же люди, лолвут, плагиат, твиттер, тренд, 2012, about, бабушки, вещи, видео, зомбоящик, игрушки, социопатия,
Персональное
об авторе и сайте
мойкруг (резюме)
на G+
порнотумблер (rss)
инстаграм (хипстерские фото)

facebook
twitter

skype: acerbial
gtalk: dmitry.smirnov


C любовью к людишкам™,
♥ 1998 - 2013.

powered by mongodb.



Регистрация пользователя

На многих сайтах есть регистрация пользователя. Начиная с livejournal.com и заканчивая dirty.ru. Мне недавно довелось делать самому такую регистрацию, и я придумал одну идею, которая не претендует на гениальность, однако используется она далеко не везде. По крайней мере, я ничего подобного до сих пор не видел. Может быть, плохо смотрел. Но факт остается фактом.

Проблема в том, что пользователи, в основной массе своей — тупые существа. Или, чтобы не обидеть, скажем — «непредсказуемые». Мало кто может предсказать, почему пользователь завел аккаунт и больше никогда им не пользовался. Но факт остается фактом: многие пользователи регистрируется по неизвестным никому причинам, забивают «красивые логины», при этом не пользуются плодами своей регистрации.

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

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

Но я придумал способ чуть-чуть элегантнее и проще.

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

Уникальная ссылка выглядит примерно так: login=qwerty&password=zzzzzzz&email=mail@mail.ru
&approve=c76681e374ff48fc282af35bc9e25007
. Аpprove — это md5, завязанная на логин-пароль и какую-нибудь уникальную строку, которую знает только ваш сервер. Кстати, пароль при регистрации можно не спрашивать, и, соответственно, в секретном УРЛе не передавать, а генерить автоматически и высылать после регистрации.

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

2. Пользователь нажал на ссылку. Мы тут же про него вспоминаем (берем информацию о нем из уникальной ссылки, а не из базы), заводим его в базе, автоматически логиним и отправляем... нет, не на страницу «продолжение регистрации». Во многих системах я наблюдал ненужное дублирование: есть страница регистрации, на которой пользователь вводит данные, и есть место (назовем его «страница пользователя»), где пользователь уже после регистрации может изменить эти данные. Но, по сути дела, эти страницы — одно и то же. «Так зачем платить дважды?»...

Поэтому мы создаем, логиним пользователя и отправляем его на его же незаполненную страницу пользователя. Если там есть required fields, то там ему и пишем: «Заполните такие-то поля, а то аккаунт мы вам так и не включим».

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

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

Вот и вся идея. Надеюсь, кому-нибудь будет полезно.

0
Привет, Anonymous! Чтобы оставлять комментарии, надо авторизоваться.