Django-rest-framework api权限AllowAny验证失败

eit6fx6z  于 2022-11-18  发布在  Go
关注(0)|答案(1)|浏览(159)

我有一些意见如下:

class SomeView(generics.ListAPIView):
    serializer_class = SomeSerializer
    permission_classes = [AllowAny]

settings.py

REST_FRAMEWORK = {
'DEFAULT_PERMISSION_CLASSES': (
    'rest_framework.permissions.AllowAny',

),
...
'DEFAULT_AUTHENTICATION_CLASSES': (
    'rest_framework_simplejwt.authentication.JWTAuthentication',
),
...

}
当我请求没有任何Authorization头时,它工作正常。但当我添加Bearer Authorization头时,它响应

"detail": "Given token not valid for any token type",
"code": "token_not_valid",

我给出了permission_classes=[AllowAny]为什么?我认为发送不发送tokens没有区别。因为我设置了permission_class=[AllowAny]
ASP.NET中没有这样的问题。在ASP.NET中,如果我设置了AllowAny权限,则无论您是否发送Token,此端点都将对所有人开放。

**EDIT:**当我请求withoutwith任何Authorization头时,它工作正常。但当我添加错误的Authorization头时,它会给出授权错误

u7up0aaq

u7up0aaq1#

AllowAny验证令牌是否已发送,如果没有则通过。因此,如果不需要进行身份验证,请清除permission_classes

permission_classes = ([])

相关问题