簡體   English   中英

無法在后端獲取從前端發送的 jwt 令牌

[英]Cannot get jwt tokens sent from frontend in backend

我是 Django 和 simplejwt 的新手,我遇到了一個問題。 令牌從我們的 Angular 前端以“app_token”和“access_token”的名稱發送給我,但我找不到在我的 Django 代碼中檢索它們的方法。 我嘗試過像“HTTP_APP_TOKEN”和“HTTP_ACCESS_TOKEN”這樣的名稱,甚至讓我們的前端團隊重命名令牌,但這也沒有幫助。 有沒有人有任何想法?

由於我還沒有足夠的聲譽來添加評論,我想確定您是否使用nginx來轉發您的請求。 如果是,也許關注答案會有所幫助,否則,請評論我刪除。

默認情況下,Nginx 忽略帶有下划線的標題。 這可以解釋為什么您的標頭屬性(如app_tokenaccess_token )無法傳遞到后端。

1> 你可以在你的nginx 配置中設置underscores_in_headers

2> 使用不帶下划線的標題preperty。

您可以從請求中獲取令牌; 例如,您使用 IsAuthenticated 權限保護視圖,並且您在視圖中有一個方法名稱

def get(self, request):
    token = request.headers['Authorization']
    # other code

如果您使用過 simplejwt,則令牌會像Bearer access_token一樣從前端作為標頭傳遞

暫無
暫無

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

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