我正在使用rest_framework_simplejwt
对我的用户进行身份验证,但在某些视图中,我需要忽略它,因为这些是公共视图。我想要在视图流程中检查令牌。期望的行为是:
在公共视图中
- 避免令牌验证:如果有过期或无效的令牌,请忽略它,并让我在APIView中验证它
实际上,rest_framework_simplejwt
会检查令牌并在令牌无效或过期时引发401
错误...
我尝试禁用APIView内的authentication_classes
,如下所示:
class SpecificProductApi(APIView):
def get_authenticators(self):
if self.request.method == 'GET':
self.authentication_classes = []
return super(SpecificProductApi, self).get_authenticators()
但是如果我在进入GET APIView
方法之前禁用它,我就无法执行if reques.user.is_authenticated:
因为我已经禁用了令牌:(
存在一种方式可以使用户手动进入视图并进行检查吗?谢谢
request.user.is_authenticated
时遇到了什么问题。你能解释一下吗? - JPGself.authentication_classes = []
,那么在视图中使用request.user.is_authenticated
就没有效果,它总是返回 false。我需要在视图内手动处理身份验证,避免在外部进行验证。希望我表达得更清楚了,非常感谢 :) - Jhon Sanz