#reactjs #django #authentication #django-rest-framework
Вопрос:
я использую пользовательскую модель аутентификации django по умолчанию для целей аутентификации, таких как регистрация нового пользователя, вход пользователя и выход пользователя, и теперь я хочу получить доступ к API, необходимым для аутентификации, в React, так как этого добиться, если это невозможно, что мне делать? я использую фреймворк Django Rest
мой urls.py
from django.contrib import admin
from django.urls import path, include
from django.contrib.auth import views as auth_views
from authentication import views as authentication_views
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('liveclass_api.urls')),
path('login/', auth_views.LoginView.as_view(template_name='authentication/login.html'), name='login'),
path('logout/', auth_views.LogoutView.as_view(template_name='authentication/logout.html'), name='logout'),
path('register/', include('authentication.urls')),
мой login.html
**
<div class="content-section">
<form method="POST">
{% csrf_token %}
<fieldset class="form-group">
<legend class="border-bottom mb-4">Login</legend>
{{form}}
</fieldset>
<div class="form-group">
<button class="btn btn-outline-info pt-3" type="submit">Login</button>
</div>
</form>
<div class='border-top pt-3'>
<small class='text-muted'>
Want to get an account?
<a class='ml-2' href={% url 'register' %}>Sign up now</a>
</small>
</div>
</div>
Я пишу шаблон регистрации или входа в систему, так как они совершенно одинаковые, я хочу изменить эту аутентификацию или мне придется использовать новую для работы с react
Комментарии:
1. Попробуйте добавить
action="/login"
атрибут в форму![]()
Ответ №1:
Я предлагаю вам использовать аутентификацию по токенам, как это работает: каждому пользователю выдается токен (буквенно-цифровая строка).
Когда запрос API поступает от этого пользователя, запрос пользователя Token
отправляется как HTTP Header
.
Токен пользователя может храниться в той или иной форме localstorage
. Вы можете найти пошаговое руководство по началу работы с аутентификацией по токенам в документах Django Rest Framework здесь.