Ana*_*ees 4 python django django-rest-framework
让我先向您展示我的代码:
在settings.py
....
DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated',
)
....
Run Code Online (Sandbox Code Playgroud)
我的my_view.py:
@api_view(['POST'])
@permission_classes((AllowAny,))
def say_hello(request):
return Response("hello")
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,我默认使用令牌身份验证来保护我的其他 API,但是当我在 中添加令牌标头时say_hello,Django Rest Framework 也会检查令牌是否有效,即使我添加AllowAny权限类也是如此。
我的问题是,如果令牌标头存在于say_hello?中,如何使 Django Rest Framework 忽略检查令牌?这样做有什么安全考虑吗?
谢谢。
您似乎混淆了身份验证和授权。
@permission_classes通过在视图上使用装饰器,您已经覆盖了设置中的默认授权。但您仍然可以使用设置中的默认身份验证类别。
尝试在您的视图中添加另一个装饰器,以绕过TokenAuthentication:
@authentication_classes([])
Run Code Online (Sandbox Code Playgroud)
请注意,如果您将其放在POST端点上,您的应用程序现在很容易受到跨站点请求伪造等讨厌的东西的影响。
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |