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

#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 здесь.