Джанго. Подтверждение создания пользователя по почте - PullRequest
2 голосов
/ 16 июля 2009

Я хочу создать пользователей django из приложения django, а затем подтвердить создание пользователя, отправив им электронное письмо со ссылкой для подтверждения.

Как я могу безопасно сгенерировать эту ссылку из пользовательских данных (я не хочу генерировать случайное значение и сохранять его в БД, и я не хочу использовать для этого внешние модули, такие как Pinax)

Ответы [ 2 ]

4 голосов
/ 16 июля 2009

Вам захочется пройти регистрацию на django и назвать это готово: http://bitbucket.org/ubernostrum/django-registration/wiki/Home

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

  1. Пользователь регистрируется в аккаунте.
  2. Пользователь получает электронное письмо с инструкциями по активации аккаунт.
  3. Пользователь активирует и начинает пользоваться сайтом.

Документы о том, как интегрировать и использовать его: http://bitbucket.org/ubernostrum/django-registration/src/tip/docs/overview.txt

Управляет ключом reg, периодом ожидания и всей обработкой для активации учетной записи.

Я использовал это несколько раз с небольшими модами, и очень легко начать тестирование, используя даже учетную запись gmail для отправки на тестирование.

Добавьте это в файл settings.py в приложении для тестирования с учетной записью Gmail:

EMAIL_USE_TLS = True
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_HOST_USER = 'YOURUSERATGOOGLEMAIL@gmail.com'
EMAIL_HOST_PASSWORD = 'YOURPASSWORD'
EMAIL_PORT = 587

Кроме того, профили django - отличное дополнение к этому комплекту регистрации django: http://bitbucket.org/ubernostrum/django-profiles/wiki/Home

1 голос
/ 16 июля 2009

Вы можете сделать что-то вроде этого:

from django.utils.hashcompat import sha_constructor

salt = "secret_salt"
confirmation_key = sha_constructor(salt + email_address).hexdigest()

, а затем отправьте ключ подтверждения как часть строки запроса в ссылке для проверки. Хотя я не уверен, насколько это безопасно.

Почему вы хотите сделать это без БД? Взгляните на django-email-подтверждение для стандартного (использует db) способа, чтобы приблизиться к этому.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...