Как сбросить пароль с помощью django rest framework SessionAuthentication

Я создаю API для мобильного приложения. Мобильный клиент полностью поддерживает файлы cookie, поэтому я хочу использовать SessionAuthentication. Следуя руководству по Django rest framework, как вы настраиваете API и взаимодействуете с ним, чтобы сбросить пароль пользователя?

Я знаю, что Django предоставляет эти пути

accounts/login/ [name='login']
accounts/logout/ [name='logout']
accounts/password_change/ [name='password_change']
accounts/password_change/done/ [name='password_change_done']
accounts/password_reset/ [name='password_reset']
accounts/password_reset/done/ [name='password_reset_done']
accounts/reset/<uidb64>/<token>/ [name='password_reset_confirm']
accounts/reset/done/ [name='password_reset_complete']

Примечание. Я использую не BasicAuthentication, а SessionAuthentication. Какие http-запросы должен делать мобильный клиент?


person Harry Moreno    schedule 28.09.2018    source источник


Ответы (1)


Чтобы использовать Django, встроенные в потоки аутентификации с использованием SessionAuthentication, вы должны использовать браузер. См. Warning: Always use Django's standard login view when creating login pages. This will ensure your login views are properly protected. http://www.django-rest-framework.org/api-guide/authentication/#sessionauthentication

В телефонном приложении вам не нужно беспокоиться о межсайтовых сценариях, поэтому можно использовать аутентификацию с помощью токена и хранить токен на телефоне.

Вы все равно захотите использовать SessionAuthentication для API-интерфейса Django-Rest-Framework с возможностью просмотра. Не забудьте принудительно установить HttpOnly куки и отключить доступный для просмотра API в рабочей среде. Позже вы можете создать одностраничное приложение, основанное на том же подходе, что и мобильное приложение, но обеспечивающее хранение всех токенов в виде защищенных файлов cookie.

Для сброса пароля в drf попробуйте https://github.com/anx-ckreuzberger/django-rest-passwordreset

person Harry Moreno    schedule 28.09.2018