Django rest framework 权限类已验证,无法在DRF中工作
我已经使用了令牌身份验证,它工作正常,即它正在验证用户,然后用户登录。但是在我的视图中,我为其中一个视图将权限类设置为IsAuthenticated,即使用户是经过身份验证的用户,也不允许对其进行身份验证。 下面是显示我已登录的屏幕截图(jadhav@gmail.com): 下一个标签上写着“未提供认证详细信息”: 有人能告诉我出了什么事吗? 好的,我将提供详细信息: 以下是我的设置:Django rest framework 权限类已验证,无法在DRF中工作,django-rest-framework,django-authentication,django-serializer,auth-token,Django Rest Framework,Django Authentication,Django Serializer,Auth Token,我已经使用了令牌身份验证,它工作正常,即它正在验证用户,然后用户登录。但是在我的视图中,我为其中一个视图将权限类设置为IsAuthenticated,即使用户是经过身份验证的用户,也不允许对其进行身份验证。 下面是显示我已登录的屏幕截图(jadhav@gmail.com): 下一个标签上写着“未提供认证详细信息”: 有人能告诉我出了什么事吗? 好的,我将提供详细信息: 以下是我的设置: REST_FRAMEWORK = { 'DEFAULT_AUTHENTICATION_CLASSE
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.TokenAuthentication',
),
'DEFAULT_PERMISSION_CLASSES': (
'rest_framework.permissions.IsAuthenticated', )
}
我就是这样认证的:
类UserLoginAPIView(APIView):
我设置限制的另一个视图:
类BoardCreateAPIView(CreateAPIView):
在django rest框架中,您应该在请求头中提供令牌。下面是使用curl命令的示例:
curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <MY_TOKEN>" http://my-api-url
如需更多了解请阅读此正如@Reza所暗示的,您错过了令牌身份验证的要点。您正在尝试改用基本身份验证流。流程如下:
授权:令牌
acquire\u token
,以免混淆其功能
查看文章@Reza linked了解更多信息。我认为内置api文档不允许发布帖子?我可能错了。检查浏览器开发工具,确保您确实发送了带有令牌的帖子。也就是说,您应该添加有关如何添加权限类以及如何添加令牌的更多信息。此外,身份验证所需的头是
授权
,因此,请确保您的令牌在那里,您可以使用Postman在上设置身份验证header@Jason编辑以提供更多信息info@MohammadAli试图提供更多信息,现在你可以告诉我哪里搞砸了。我试图提供更多信息。你能检查一下吗?你读过这篇文章了吗?还是通过我提供的令牌头发送的?只需获取令牌,然后通过Authorization:token
标题集向您的Url发送一个请求,并对其具有权限。
queryset = Boards.objects.all()
serializer_class = BoardCreateSerializer
permission_classes = (IsAuthenticated,)
curl -X POST -H "Content-Type: application/json" -H "Authorization: Token <MY_TOKEN>" http://my-api-url
REST_FRAMEWORK = {
'DEFAULT_AUTHENTICATION_CLASSES': (
'rest_framework.authentication.BasicAuthentication',
'rest_framework.authentication.SessionAuthentication',
)
}