Как лучше всего зарегистрировать нового пользователя в моем случае?

Я собираюсь разрешить новым пользователям регистрироваться на моем сервисе. Вот как я думаю, это должно быть: 1. Пользователь вводит свой адрес электронной почты в поле и нажимает кнопку «Регистрация». 2. Пользователь получает электронное письмо с подтверждением со ссылкой, содержащей код подтверждения. 3. Пользователь переходит по той ссылке из электронного письма, где видит сообщение о том, что его учетная запись активирована.

Итак, главное, что я должен выяснить, как реализовать, - это второе. Как мне лучше сгенерировать этот код? Должен ли я генерировать его, когда пользователь нажимает кнопку «Зарегистрироваться» и сохранять его в поле, скажем «код подтверждения» рядом с полем «электронная почта», а затем, когда он переходит по ссылке подтверждения, сравнивать значения? Затем, если все в порядке, очистите поле «verification_code» и установите для поля «user_is_active» значение «True». Или, может быть, мне вообще не нужно хранить этот код в базе данных, а сделать своевременную проверку с помощью какого-то алгоритма? Может быть, есть другие вещи, которые я должен рассмотреть?


person Sergei Basharov    schedule 02.12.2010    source источник
comment
Алгоритмы тегов и генераторы немного вводили в заблуждение, поэтому я удалил их.   -  person Bunny Rabbit    schedule 02.12.2010


Ответы (2)


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

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

person Vinay Sajip    schedule 02.12.2010

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

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

person knutin    schedule 02.12.2010
comment
Я собираюсь использовать его в Google App Engine, и мне нужно что-то маленькое, простое, без особого волшебства. Вот почему я просто спрашиваю о логическом способе сделать это, а не о полном решении. Затем я смогу применить эту логику для создания собственного светового кода. - person Sergei Basharov; 02.12.2010