2017-10-20 173 views
1

如何讓JWT在用戶執行OPTIONS請求時不檢查並需要令牌?DRF JWT不要求選項請求上的令牌

我定義我自己options(self, request, *args, **kwargs)的方法,但只要permission_classes = [isAuthenticated]啓用後,用戶會被要求提供登錄憑據...

我們正在使用中的API反應與DRF互動必須做一個OPTION請求,它不包含任何頭文件。當它沒有得到一個200代碼回來,它不執行實際的請求到服務器...

回答

1

我認爲最簡單的方法是聲明custom permissions並使用它(在permissions.py文件中):

from rest_framework import permissions 

class IsAuthenticated(permissions.IsAuthenticated): 

    def has_permission(self, request, view): 
     if request.method == 'OPTIONS': 
      return True 
     return super(IsAuthenticated, self).has_permission(request, view) 

,並在設置中更改DEFAULT_AUTHENTICATION_CLASSES這一類...

+0

智威湯遜仍然會檢查是否有一個選項請求令牌.. –

+0

提供錯誤信息請,我想你的正確方法覆蓋'JSONWebTokenAuthentication' [get_jwt_value方法](https://github.com/GetBlimp/django-rest-framework-jwt/blob/master/rest_framewor k_jwt/authentication.py#L81) –

+0

沒有錯誤代碼,我只是得到一個帶有「detail」的401響應:「沒有提供身份驗證憑據。」來自JWT。 –