簡體   English   中英

使用 React 和 Django REST 框架進行身份驗證

[英]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-authdjoser

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM