djoser регистрация, авторизация, отправка email с подтверждением - Django Rest Framework урок 11

  Рет қаралды 42,760

Django School

Django School

4 жыл бұрын

В уроке установим и настроим djoser. Разберем зачем нужны токены. Реализуем регистрацию и авторизацию пользователя. Настроим отправку email для подтверждения регистрации.
Не забудь подписаться на канал, чтобы не пропустить новые видео.
Урок на GitHub - clck.ru/NsbJ5
Что такое JWT - • django rest framework ...
Настройка simple-jwt - • django rest framework ...
Настройка smtp gmail - www.hostinger.com.ua/rukovods...
postman - www.postman.com/
--=--
🔥Провожу индивидуальные занятия (ментор) по python, django, fastapi, javascript
📳 Moй Telegram - t.me/DJWOMS
--=--
Мы в сети:
Telegram канал - t.me/django_school
Telegram чат - t.me/trueDjangoChannel
Донат - donatepay.ru/don/186076
Донат 2 - www.donationalerts.com/r/djan...
Discord - / discord
ВК - djangochannel
--=--
#django #djoser #drf #djangoschool #djangorestframework #программирование #python

Пікірлер: 88
@alexanderkononov4068
@alexanderkononov4068 3 жыл бұрын
отлично! То что мне нужно было=)
@aleksandrsemenov1764
@aleksandrsemenov1764 2 жыл бұрын
Благодарю за этот урок
@michael.manasian
@michael.manasian 3 жыл бұрын
Миш, подскажи, есть ли возможность, используя djoser отправлять любого рода сообщения в фоне?Для фоновой отправки в текущей реализации использую huey.
@user-qu7nr5ue3t
@user-qu7nr5ue3t 4 жыл бұрын
Отличное видео! Очень помогло. Ещё интересно было бы рассмотреть вопрос регистрации не по мылу, а по номеру телефона, используя какой-нибудь сторонний сервис для рассылки смс.
@DjangoSchool
@DjangoSchool 4 жыл бұрын
Возможно сделаю такое видео
@user-qh9xk4ot9i
@user-qh9xk4ot9i 4 жыл бұрын
Добрый день. А будет видео с реализацией фронтенда?
@justalone1549
@justalone1549 3 жыл бұрын
а как это будет на интерфейсе?) я тоже пробовал точно также но когда перейду по УРЛ не могу прикрепить токены и тп к хедеру. Типа создал данных только в базе а на интерфейсе ничего не получается) Есть ли и на эту тему уроки?)
@user-ni4sq9td6l
@user-ni4sq9td6l 4 жыл бұрын
привет! спасибо тебе большущее за канал за то что делаешь от души!!!! Вопросик такой тут уже задавали так и не понял ответ! Я вот пилю потихоньку API для приложения андроид и у нас там регистрация с подтверждением по email. Получается djoser отправляет письмо с ссылкой подтверждения кликнув по которой пользователь априори не сможет активировать учётную запись так как нужен post а не get запрос! Почему так и зачем такой финт ушами? почему нельзя просто getом перейти и подтвердить(мы конечно прикрутили костыль перехвата get и отправки post как сами разрабы где то в обсуждении предлагали) в чём тут скрытый смысл разработчиков? и как фронт тут может отработать да и зачем фронт нужен если можно прямым переходом? вообщем одни вопросы а логики не видно!
@user-yu7vi7dc9r
@user-yu7vi7dc9r 2 жыл бұрын
Всем привет! Что делать, если в auth/users/ я ввожу эмейл, логин и пароль, новый пользователь создаётся, но выдаёт ошибку "ConnectionRefusedError at /auth/users/ [WinError 10061] Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение"?
@willbe9869
@willbe9869 4 жыл бұрын
Very useful
@hanma83292
@hanma83292 9 ай бұрын
Файно!
@olegmlavets5216
@olegmlavets5216 4 жыл бұрын
Такая ошибка при отправке емейла *OSError at /auth/users/* *[Errno 101] Network is unreachable*
@vitaliiananiev5038
@vitaliiananiev5038 Жыл бұрын
'DEFAULT_FILTER_BACKENDS': ( 'django_filters.rest_framework.DjangoFilterBackend', ), Ошибка: ImportError: Could not import 'django_filters.rest_framework.DjangoFilterBackend' for API setting 'DEFAULT_FILTER_BACKENDS'. ModuleNotFoundError: No module named 'django_filters'.
@calmius24
@calmius24 4 ай бұрын
Все понятно, спасибо, но имхо присутствует незавершенность урока в том плане что наш потенциальный пользователь сайта вряд ли для того чтобы подтвердить почту будет скачивать Постман и слать POST запрос. Надо бы как-то это реализовать по-человечески не для программистов.
@willbe9869
@willbe9869 4 жыл бұрын
Thanks
@komrad_sl1264
@komrad_sl1264 3 жыл бұрын
Правильно ли я понял, что на фронтенде потом просто нужно будет для регистрации отослать post запрос на нужный урл с полями юзернейм пароль емаил чтобы зарегистрироваться? И если будет ошибка то во фронте мы получаем ошибку по json что допустим такой пользователь уже есть?
@DjangoSchool
@DjangoSchool 3 жыл бұрын
Все верно
@scadeline805
@scadeline805 3 жыл бұрын
Как решить? Пробовал и суперюзера вводить, и создал простого юзера и его данные вводил, но не возвращает токен, а только это "non_field_errors": [ "Unable to log in with provided credentials." ]
@scadeline805
@scadeline805 3 жыл бұрын
Решил. Я кидал также этот запрос по POSTMAN, и мне выдавал ошибку. В headers стояло поле content-type: "application/x-www-form-urlencoded". Я его галочку просто убрал, считай в headers ничего не было и так заработало
@nurgazy6509
@nurgazy6509 Жыл бұрын
Друзья помогите пожалуйста выходит такая ошибка, когда пытаюсь залогиниться: { "non_field_errors": [ "Unable to log in with provided credentials." ] }
@farfromsouls
@farfromsouls Жыл бұрын
Такая же фигня, решил как-то? :о
@alexandertatarkin1792
@alexandertatarkin1792 4 жыл бұрын
Спасибо за урок. А где исходники взять ?
@DjangoSchool
@DjangoSchool 4 жыл бұрын
Пожалуйста, код я ещё не выкладывал
@komrad_sl1264
@komrad_sl1264 3 жыл бұрын
Посмотрел стрим, вроде разобрался. Теперь смотрю это видео, и не понимаю для чего устанавливать два вида токенов? Это обязательно? Или можно установить только по JWT работу и все?
@DjangoSchool
@DjangoSchool 3 жыл бұрын
Можно использовать только jwt
@user-br7hg4by2j
@user-br7hg4by2j 3 жыл бұрын
Возможно, кому-то будет полезно. Если при создании пользователя post запросом (на /auth/users) получаем ошибку "[Errno -2] Name or service not known" (при этом пользователь всё равно создаётся), то это означает что возникла проблема при отправке сообщения по smtp. У меня такая ошибка поначалу возникала даже после выполнения всех необходимых настроек в google и gmail аккаунте и исчезла только после перелогина в google.
@skrachin
@skrachin 3 жыл бұрын
Отличные уроки, смотрятся легко и все понятно) А можно сделать e-mail обязательным параметром и уникальным? И вообще, есть ли возможность изменять параметры полей User?
@DjangoSchool
@DjangoSchool 3 жыл бұрын
Да, docs.djangoproject.com/en/3.2/topics/auth/customizing/#substituting-a-custom-user-model и webdevblog.ru/sovremennyj-sposob-sozdanie-polzovatelskoj-modeli-user-v-django/
@skrachin
@skrachin 3 жыл бұрын
@@DjangoSchool Спасибо огромное)
@leopardsnow1508
@leopardsnow1508 4 жыл бұрын
Добрый день! Урок отличный, но почему при активации пользователя по емэйл нужно отправлять именно POST запрос, как-то не удобно получается. Вроде на всех сервисах зашёл в почту, перешёл по ссылке в письме из браузера и вуаля, пользователь активирован
@DjangoSchool
@DjangoSchool 4 жыл бұрын
В уроке реализована часть бека, а вот задача фронта в том что бы после перехода по этой ссылке забрать данные и отправить post запрос на бек.
@user-uk4sx2vs9o
@user-uk4sx2vs9o Жыл бұрын
@@DjangoSchool Спасибо тебе и тем, кто придумал комментарии
@dos6920
@dos6920 3 жыл бұрын
если делать регистрацию через djoser, то у меня будет доступ к self.request.user во views?
@DjangoSchool
@DjangoSchool 3 жыл бұрын
Да
@1Xandr1
@1Xandr1 Жыл бұрын
Классные уроки, сейчас изучаю и задался вопросом, как сделать так что бы пользователь вводил логин или почту в одно поле и все работало, поискал в интернете нашел только как заменить логин на пароль, Chat GPT тоже ответа не дал. Подскажите пожалуйста
@DjangoSchool
@DjangoSchool Жыл бұрын
При получения данных из поля, проверить с помощью регулярки на email. Затем принять решение это логин или мыло. Или сначала попытаться найти пользователя по логину, потом по мылу.
@user-gm2go5fe1g
@user-gm2go5fe1g 3 жыл бұрын
как сделать что бы при регистрации автоматически выставлялось пользователю is_active?
@tynnikov
@tynnikov 3 жыл бұрын
В документации написано, что нужно переопределить значения is_active = True. Для этого нужно написать отдельную функцию , где будет меняться значение, если регистрация прошла успешно
@nix7705
@nix7705 2 жыл бұрын
Наверное не стоило смешивать jwt и обычные токены в одних настройках... чтоб кто нибудь что нибудь не перепутал, но доки все чудесно обьясняют
@nix7705
@nix7705 2 жыл бұрын
И непонятно как активировать пользователя GET запросом, нужно поискать
@alexeyluzin4485
@alexeyluzin4485 4 жыл бұрын
То, что ты называешь "авторизация", - на самом деле "аутентификация". Это две разные вещи, программисту негоже их путать. (Но почему-то все путают)
@user-ii5yl2fe8v
@user-ii5yl2fe8v 4 жыл бұрын
Может я что-то не так сделал, пока не понял. У меня при введении учетных данных, как ввел Михаил (автор курса) - имя: Test1, пароль: Te123456, возникала ошибка о невозможности создания токена. Ввел данные своего суперпользователя - токен создался.
@DjangoSchool
@DjangoSchool 4 жыл бұрын
Привет, токен можно создать если пользователь существует
@user-ii5yl2fe8v
@user-ii5yl2fe8v 4 жыл бұрын
@@DjangoSchool спасибо за ответ. Буду знать
@edzenoichiev403
@edzenoichiev403 3 жыл бұрын
@@DjangoSchool Спасибо)
@russul2700
@russul2700 Жыл бұрын
Добрый день! использую Sqlite3 вместо Postgre При миграции после установки simple_jwt выходит ошибка django.core.exceptions.ImproperlyConfigured: settings.DATABASES is improperly configured. Please supply the ENGINE value. Check settings documentation for more details. как решить эту проблему ?
@DjangoSchool
@DjangoSchool Жыл бұрын
Добрый. Напишите к нам в группу телеграм и скрин настроек БД добавьте.
@russul2700
@russul2700 Жыл бұрын
@@DjangoSchool скинул, но там редко отвечают
@none7794
@none7794 Жыл бұрын
добрый вечер. можно ли при регистрации заменить поле логин на емайл ? оставить только емайл и пароль ?
@DjangoSchool
@DjangoSchool Жыл бұрын
Можно. В доке djoser это есть.
@none7794
@none7794 Жыл бұрын
@@DjangoSchool я поищу, благодарен)
@none7794
@none7794 Жыл бұрын
@@DjangoSchool подключаю отправку письма на почту, по порту 587 выдает ошибку html. по настройкам, которые вы скинули в комментариях тоже не работает, пользователи отправляются в администрацию, но с почтой беда(
@paulbarkhov
@paulbarkhov 2 жыл бұрын
Почему вы JWT произносите как "Джот"?
@DjangoSchool
@DjangoSchool 2 жыл бұрын
youglish.com/pronounce/JWT%20token/english
@ilyashevelev9256
@ilyashevelev9256 2 жыл бұрын
С 30 мая google отменил возможность разрешать ненадежные приложения, теперь письма не отправляются. С этим можно что-то поделать?
@alexseydugin8109
@alexseydugin8109 Жыл бұрын
Тебе мб уже не надо, но думаю другим поможет: Я делел через yandex: Настройка почты в яндексе: yandex.ru/support/mail/mail-clients/others.html#imap Настройки в settings: EMAIL_HOST = 'smtp.yandex.ru' EMAIL_PORT = 587 EMAIL_HOST_USER = 'ваша_почта@yandex.ru' EMAIL_HOST_PASSWORD = 'password'
@user-vw9hp9xf3c
@user-vw9hp9xf3c Жыл бұрын
@@alexseydugin8109 Спасибо!!!
@nouchance
@nouchance 4 жыл бұрын
Привет бро.Спасибо за видос хотел спросить это какой код. Редактор?
@DjangoSchool
@DjangoSchool 4 жыл бұрын
Привет, пожалуйста. Вопрос не понял.
@nouchance
@nouchance 4 жыл бұрын
@@DjangoSchool Тоесть редактор кода какой используешь для Django VS code , pyCharm?
@DjangoSchool
@DjangoSchool 4 жыл бұрын
@@nouchance pycharm
@dmytrokovalov2199
@dmytrokovalov2199 3 жыл бұрын
POSTMAN выдает ошибку "CORS Error: The request has been blocked because of the CORS policy". Через интерфейс drf токен выдает.
@mihailbury240
@mihailbury240 Жыл бұрын
Как сделать так, чтобы после перехода по ссылке отправленную по электронной почте статус пользователя автоматически становился is_active=True?
@user-uk4sx2vs9o
@user-uk4sx2vs9o Жыл бұрын
Ты решил этот вопрос? Я сейчас занимаюсь тем же и не получается так настроить
@user-uk4sx2vs9o
@user-uk4sx2vs9o Жыл бұрын
Нашел ответ в комменте ниже
@zhunisali
@zhunisali 3 жыл бұрын
Показал как настроить JWT, но не показал примера
@flaskblog7552
@flaskblog7552 4 жыл бұрын
После установки djoser + jwt слетела авторизация пользователя на rest, в админ панель вход выполнен, нажимаю авторизоваться ввожу логин+пароль но неудача UPD. это из-за того, что надо было прописать стандартную авторизацию в настройках рест фреймворка REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSES': ( ... 'rest_framework.authentication.SessionAuthentication',) ... } после того как добавил все стало ОК
@dmytrokovalov2199
@dmytrokovalov2199 3 жыл бұрын
Урок на Github не грузит
@DjangoSchool
@DjangoSchool 3 жыл бұрын
Без проблем открывает
@nochnoy_kot
@nochnoy_kot 3 жыл бұрын
а рили надо столько дополнительных модулей?!
@Denis-sw8zv
@Denis-sw8zv 4 жыл бұрын
То что надо. Если бы не от туториал то было б сложно. Но вопрос почему не до конца доделал ? Как оформить красиво всё это. Чтобы пользыватель перешёл и потвердил
@DjangoSchool
@DjangoSchool 4 жыл бұрын
Что значит не до конца? Часть бека готово, красота это часть фронта.
@Denis-sw8zv
@Denis-sw8zv 4 жыл бұрын
@@DjangoSchool Хотелось бы увидеть этот весь функционал по красоте. Но и за этот урок спасибо. Как насчёт урока чтобы сделать логинацию по емейлу ?
@DjangoSchool
@DjangoSchool 4 жыл бұрын
@@Denis-sw8zv На стриме расскажу в субботу. По сути там не сложно. Приходи.
@Denis-sw8zv
@Denis-sw8zv 4 жыл бұрын
@@DjangoSchool Отлично. Прийду ;)
@wanirk6512
@wanirk6512 Жыл бұрын
Я пришёл посмотреть как rest запросом отправить письмо. Нахрена мне это всё? 300 строк, пол видоса отсылают к другим видео на этом канале. Просто покажи запрос, которым сообщение отправляется
@ramiz3570
@ramiz3570 4 жыл бұрын
+
@fsafdvs8255
@fsafdvs8255 4 жыл бұрын
Все хорошо, но урок очень сухо подает всю информацию, как приложение к документации очень хорошо, но не для полного самообучения
@syracuse4612
@syracuse4612 2 жыл бұрын
письмо не приходит
@lordlord5548
@lordlord5548 2 жыл бұрын
решил проблему?
@syracuse4612
@syracuse4612 2 жыл бұрын
@@lordlord5548 нет)
@user-cc4gn5rh6f
@user-cc4gn5rh6f 5 ай бұрын
А сейчас решил проблему?
@liza.metla.
@liza.metla. 3 жыл бұрын
Можете подсказать, где я могла напортачить?)) relation "authtoken_token" does not exist LINE 1: ...oken"."user_id", "authtoken_token"."created" FROM "authtoken...
@iso1286
@iso1286 2 жыл бұрын
Скорее всего миграция не сделана
@MsTomoeSan
@MsTomoeSan 2 жыл бұрын
Чтобы отправлять письмо через gmail, надо сгенерировать пароль в гугл аккаунте, вкладка "Безопасность" - "Пароли приложений". Придумайте любое название и сгенерируйте пароль. Этот пароль вставьте в файл настроек проекте в EMAIL_HOST_PASSWORD.
@xzemple5491
@xzemple5491 Жыл бұрын
бро спасибо большое, очень помог!
@MsTomoeSan
@MsTomoeSan Жыл бұрын
@@xzemple5491 не бро, систр )
@black_grizzly
@black_grizzly 13 күн бұрын
​@@MsTomoeSanйоу бро
drf-yasg автодокументирование api django rest framework - урок 12
6:48
Django School | Омельченко Михаил
Рет қаралды 21 М.
39kgのガリガリが踊る絵文字ダンス/39kg boney emoji dance#dance #ダンス #にんげんっていいな
00:16
💀Skeleton Ninja🥷【にんげんっていいなチャンネル】
Рет қаралды 7 МЛН
🤔Какой Орган самый длинный ? #shorts
00:42
ТАМАЕВ УНИЧТОЖИЛ CLS ВЕНГАЛБИ! Конфликт с Ахмедом?!
25:37
WHAT’S THAT?
00:27
Natan por Aí
Рет қаралды 13 МЛН
Custom user Django | Настройка проекта Django Rest | Sound Cloud #1
22:22
Django School | Омельченко Михаил
Рет қаралды 14 М.
39kgのガリガリが踊る絵文字ダンス/39kg boney emoji dance#dance #ダンス #にんげんっていいな
00:16
💀Skeleton Ninja🥷【にんげんっていいなチャンネル】
Рет қаралды 7 МЛН