Django - аутентификация, регистрация с подтверждением электронной почты
Я ищу API для аутентификации
https://docs.djangoproject.com/en/1.3/topics/auth/
Я не могу найти информацию о простой форме регистрации пользователя, которая отправит письмо с подтверждением, так как это обычный способ на веб-сайтах.
Думаю, я мог бы сделать это:
1) Отобразить форму
2) Пользователь вводит информацию и отправляет
3) Сохранить пользователя как неактивного, с кодом подтверждения
4) Отправьте ссылку с кодом подтверждения
5) Пользователь нажимает ссылку подтверждения и становится активным.
Не похоже, что это сложно, но я чувствую, что это может быть сделано уже, а также есть немало краевых случаев, которые нужно было бы рассмотреть.
Ответы
Ответ 1
Он не встроен в Django. Существует многоразовое приложение под названием django-allauth, которое будет соответствовать вашим потребностям.
Рекомендуется использовать приложение под названием django-registration, но это теперь не поддерживается и устарело.
Примечание редактора: django-регистрация не оставлена без изменений по состоянию на декабрь 2016 года.
Ответ 2
В то время как django-registration раньше была система регистрации du jour, она была оставленный сопровождающим и не работает на Django 1.6 без исправления.
Попробуйте, может быть, django-allauth - я бы использовал его, если бы знал об этом, когда смотрел. (Как оказалось, я сначала нашел этот вопрос и использовал django-registration, тратя много времени.)
EDIT 10/2016: Похоже, что регистрация django поддерживается снова. Теперь он на GitHub: https://github.com/ubernostrum/django-registration
Ответ 3
Вы можете сделать это:
- Определите функцию для активации пользователя (например, def
активировать (запрос))
- Настройте в url.py маршрут к этой функции (i.e/activate/)
- Создать форму для регистрации пользователя
- Создать функцию post для создания пользователя
- Когда вы создаете поле пользовательского набора 'is_active' равным 0.
- В той же функции отправьте электронное письмо со ссылкой внутри, эта ссылка должна иметь цель как настроенный маршрут