首页 > 解决方案 > 如何在 react 中使用默认的 django auth 模型,我想访问需要在 react 中进行身份验证的 api?

问题描述

我正在使用默认的 django auth 用户模型进行身份验证,例如注册新用户、登录用户和注销用户,现在我想访问 React 中所需的身份验证 API,那么如果不可能的话,我应该怎么做?我正在使用 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>

我正在编写 register 或 logput 模板,因为它们完全相同,我想修改此身份验证或将不得不使用新的身份验证来处理 react

标签: reactjsdjangoauthenticationdjango-rest-framework

解决方案


我建议您使用令牌身份验证它的工作原理是为每个用户提供一个令牌(一个字母数字字符串)。

当 API 请求来自该用户时,用户的请求Token将作为HTTP Header.

用户的 Token 可以以某种形式存储localstorage您可以在此处的 Django Rest Framework 文档中找到如何通过令牌认证逐步开始。


推荐阅读