簡體   English   中英

處理Django Rest框架+ Vue SPA身份驗證

[英]Handling django rest framework + vue SPA auth

對於單個頁面應用程序(當然使用Vue Router),我如何獲得與django為身份驗證的用戶(用於檢索用戶個人資料等的數據的用戶全局對象)提供的功能相同的功能。

我的觀點是,我不知道如何為vue創建與django中間件等效的中間件,以確保用戶提供用戶名和密碼后仍保持登錄狀態。

我知道我可以使用django rest框架jwt實現端點/api-token-auth/以獲取所需的令牌(將其存儲到localStorge中,以便將其存儲到axios頭中),以便能夠從api檢索信息,但除了令牌外,我沒有任何用戶會話,我當然沒有關於傳遞給模板的用戶的任何信息。

如何將用戶全局對象傳遞給每個模板? 有沒有簡單的方法可以做到這一點?

提前致謝。

通過將SessionAuthentication類添加到settings.py ,可以使用Django REST框架實現會話身份驗證,如下所示。

REST_FRAMEWORK = {
    'DEFAULT_AUTHENTICATION_CLASSES': (
        'rest_framework.authentication.SessionAuthentication',
    ),
   'DEFAULT_PERMISSION_CLASSES': (
        'rest_framework.permissions.IsAuthenticated',
    )
}

這將使用Django's默認會話后端進行身份驗證。 要注意的是,您需要確保為所有“不安全的” HTTP方法調用包括有效的CSRF令牌-PUT,PATCH,POST,DELETE。

要訪問當前用戶,您可以使用以下命令創建API端點/users/current

class CurrentUserView(APIView):
    def get(self, request):
        serializer = UserSerializer(request.user)
        return Response(serializer.data)

暫無
暫無

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

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