gpt4 book ai didi

python - 如果使用 'AllowAny' 权限类,如何防止 Django Rest Framework 验证 token ?

转载 作者:太空宇宙 更新时间:2023-11-04 05:23:07 27 4
gpt4 key购买 nike

让我先给你看我的代码:

settings.py

....
DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
....

我的my_view.py:

@api_view(['POST'])
@permission_classes((AllowAny,))
def say_hello(request):
return Response("hello")

如您所见,我默认使用 token 身份验证来保护我的其他 API,但是当我在 say_hello 中添加 token header 时,Django Rest Framework 将还要检查 token 是否有效,即使我添加了 AllowAny 权限类。

我的问题是如果 say_hello 中存在 token header ,如何让 Django Rest Framework 忽略检查 token ?这样做有什么安全考虑吗?

谢谢。

最佳答案

您似乎混淆了身份验证授权

通过在您的 View 上使用 @permission_classes 装饰器,您已经覆盖了设置中的默认授权。但是您仍然拥有来自设置的默认身份验证类。

尝试在您的 View 中添加另一个装饰器,以绕过 TokenAuthentication:

@authentication_classes([])

请注意,如果您将它放在 POST 端点上,您的应用现在很容易受到诸如跨站点请求伪造之类的攻击。

关于python - 如果使用 'AllowAny' 权限类,如何防止 Django Rest Framework 验证 token ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39671786/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com