2017-10-20 172 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。 –