Django Rest Framework避免身份验证JWT

问题描述 投票:2回答:2

我正在使用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:,因为我禁用了令牌:(

[存在一种启用输入api http方法并使用户手动进入视图的方法吗?谢谢

我正在使用rest_framework_simplejwt来验证我的用户,但是在某些视图中,我需要忽略它,因为这些是公共视图。我想将令牌签入视图流。预期的行为...

django python-3.x django-rest-framework jwt-auth django-rest-framework-simplejwt
2个回答
0
投票

有一个非常相似的问题。要创建公共端点,您将不得不覆盖身份验证器,否则将在过期/丢失的令牌上返回401/403。


0
投票

您只需要为相关视图指定权限类别

© www.soinside.com 2019 - 2024. All rights reserved.