Как я делал систему авторизации и регистрации пользователей на Django

Основное
Цели
Решение
Результат

Или почему стоит читать документацию

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

Что я, в общем-то, с успехом и сделал.

Но загвоздка в том, что Django уже имел всё необходимое для решения моих задач. Нужно было просто знать об этом. Но я не знал. И так я пере изобрёл колесо, да только оно квадратное.

Цели

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

Так же, я не знал как можно было бы сделать так, чтобы пользователь смог бы отпавить своё изображение на сервер. До той поры я передавал всё в JSON формате. А это только строки и цифры. Короче, нужно было разобраться.

Решение

Моя система аутентификации построена на обычных Django моделях. Модель я назвал User (Как очевидно) и добавил к ней поля которые вы бы могли ожидать.

  • имя пользователя
  • почта
  • пароль
  • аватар
  • об пользователе

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

После того как проблемы с валидацией регистрации и авторизации пользователя я решил, пришло время применить всё то что я сделал и показать пользователю что он зарегистрирован и/или авторизирован.

Для этого я добавил справа вверху иконку пользователя (если он её, конечно, добавлял). А также добавил profile страницу, где бы пользователь смог бы посмотреть и ознакомиться со своим профилем.

Результат

Задачу в создании простой системы авторизации я выполнил. Так же узнал как можно отправлять изображения на сервер через AJAX запросы. Это была моя вторая задача.

Но, знай я, что Django имеет встроенную возможность для имплементации авторизации с регистрацией, всё было бы гораздо проще. Да и быстрее.

Я более чем уверен, что так или иначе перепишу Django приложение для авторизации пользователей.

Дополнительные материалы


сердце 0
3 соединённые точки 0