[英]Authentication with React and Django REST Framework
我想将 React 前端添加到具有 Django 后端的网站。 为此,我使用了 Django REST 框架。 但是如何防止未登录的人发送 POST 操作来添加文章? 我想将整个前端作为 React 应用程序运行,而不是在成功登录后重定向到 React 应用程序。
在 django rest 框架中,您有权限的概念 [DRF docs] 。
您可以在设置中默认设置特定权限,如下所示:
REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': [
'rest_framework.permissions.IsAuthenticated',
]
}
然后您可以覆盖每个视图的权限,例如:
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
class ExampleView(APIView):
permission_classes = [IsAuthenticated]
def get(self, request, format=None):
content = {
'status': 'request was permitted'
}
return Response(content)
rest_framework.permissions.IsAuthenticated
不是您可以使用的唯一预定义权限 class。 有一个名为rest_framework.permissions.IsAuthenticatedOrReadOnly
的权限,我认为这是您想要的:允许所有人读取访问权限,但仅对经过身份验证的用户进行写入访问权限(例如,在您的文章上发布)。
顺便说一句,一旦您设置了正确的权限,您将需要定义和配置一种身份验证方法来验证您的前端,并能够从中发送 POST 请求。 为此,您需要阅读身份验证 DRF 文档,在方法(会话身份验证、令牌身份验证等)之间进行选择,并正确配置它们。 有第三方库可以帮助您喜欢dj-rest-auth或djoser 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.