Джанго - аутентификация, регистрация с подтверждением по электронной почте - PullRequest
17 голосов
/ 27 июня 2011

Я смотрю на API для аутентификации

https://docs.djangoproject.com/en/1.3/topics/auth/

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

Полагаю, я мог бы сделать это:

1) Показать форму 2) Пользователь вводит информацию и отправляет 3) Сохранить пользователя как неактивного, с кодом подтверждения 4) Отправить ссылку с кодом подтверждения 5) Пользователь нажимает ссылку для подтверждения и становится активным

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

Ответы [ 3 ]

26 голосов
/ 27 июня 2011

Это не встроено в Джанго. Существует многоразовое приложение под названием django-allauth , которое будет соответствовать вашим потребностям.

Раньше рекомендовалось приложение под названием django-registration , но теперь оно не поддерживается и устарело.

Примечание редактора : регистрация django не прекращается по состоянию на декабрь 2016 года.

8 голосов
/ 29 марта 2014

Хотя django-registration использовалось как система регистрации du jour, оно было оставлено сопровождающим и не работает на Django 1.6 без исправлений .

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

EDIT 10/2016: похоже, django-регистрация снова сохраняется.Сейчас на GitHub: https://github.com/ubernostrum/django-registration

0 голосов
/ 12 октября 2016

Вы можете сделать это:

  • Определить функцию для активации пользователя (т.е. определение активировать (запрос))
    • Настройте в url.py маршрут к этой функции (т. Е. / Активируйте /)
  • Создать форму для регистрации пользователя
  • Создать функцию записи для создания пользователя
    • Когда вы создаете пользовательское поле 'is_active' равным 0.
    • В той же функции отправьте электронное письмо со ссылкой внутри, у этой ссылки должна быть цель как настроенный маршрут
...