在带有Django CBV Login(LoginView)的Reaction原生登录组件中创建身份验证的正确方式是什么.

我需要使用DRF编写API吗?

或者我可以只获取POST请求到.../请输入用户名和密码登录

推荐答案

您通常会使用Django rest框架(DRF)来处理API上的身份验证.用于分离、安全和基于令牌的身份验证.

为此,您将创建一个用于身份验证的自定义API端点.您可以使用DRF的TokenAuthentication或像dj-rest-auth这样的第三方包,这些包提供一组rest API视图来处理身份验证任务.

DRF登录函数的示例代码:

from rest_framework.authtoken.models import Token
from rest_framework.views import APIView
from rest_framework.response import Response
from django.contrib.auth import authenticate

class CustomLoginView(APIView):
    def post(self, request, *args, **kwargs):
        username = request.data.get('username')
        password = request.data.get('password')
        user = authenticate(username=username, password=password)
        if user:
            token, _ = Token.objects.get_or_create(user=user)
            return Response({'token': token.key})
        return Response({'error': 'Invalid Credentials'}, status=400)

在Reaction Native端,您将创建一个捕获用户名和密码的表单.当用户提交表单时,应用程序使用用户名和密码向Django服务器的身份验证端点发出POST请求.

Python-3.x相关问答推荐

DuckDB:带有嵌套对象的星形表达式

如何从拼图分区数据集中读取数据到Polar

我不能使用拆分来分隔数据

为什么空列表也能起作用?

Python - 根据条件附加 NULL 值

删除浮点型数据集中每列重复值比例超过一定阈值的列

requests.exceptions.InvalidSchema:未找到连接适配器.我试图遍历一个列表

如何立即从asyncio.Task获取异常?

使用gekko python的混合整数非线性规划

如果值超出上下限(异常值处理),则将值的数据框替换为 np.nan

SqlAlchemy - 从 oracle db 中检索长文本

将名字转换成姓氏、首字母和中间字母的格式

python 3中的SQLAlchemy ER图

运行 PyCharm 测试时如何解决django.core.exceptions.ImproperlyConfigured:找不到 GDAL 库?

作为函数对象属性的 __kwdefaults__ 有什么用?

为什么 2to3 将 mydict.keys() 更改为 list(mydict.keys())?

Pruning in Keras

警告:请使用 tensorflow/models 中的官方/mnist/dataset.py 等替代方案

同步调用协程

Python 3中星型导入的函数形式是什么