Модель аутентификации django - вход по ссылке, отправленной по электронной почте?

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

Да, есть.

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

Я дам приблизительную оценку того, как это будет работать.
  • Сначала необходимо создать class, наследующий от AbstractBaseUser
  • .
  • Установите поле имени пользователя на email, все еще включайте поля пароля. Они являются обязательными.
  • Затем, вам нужно будет создать менеджера для этого пользовательского базового пользователя.
  • Менеджер пользователя должен иметь два метода: create_user() и create_superuser()
  • .
  • Затем, в представлении, пусть пользователь введет свой адрес электронной почты, а затем сгенерирует токен с помощью Django's default_token_generator и отправит его по электронной почте пользователю.
  • Создайте представление, которое принимает токен и регистрирует пользователя.

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

Больше информации на Django Docs

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

Альтернативный вариант: посмотрите Django AllAuth, он предоставляет множество способов аутентификации, в том числе с помощью Gmail или Facebook. В сети есть несколько отличных руководств, но вам придется немного погуглить. ;)

Вернуться на верх