使用自定义身份验证后端向API添加权限

时间:2017-04-09 07:09:16

标签: django django-views django-rest-framework django-authentication

我正在使用Djangorestframework在聊天网站上工作,在其中提交消息的方式是使用`GenericAPIView`和`Message`模型的序列化程序完成的。

MessageSerializer获取User和内容,我想限制以用户名提交的邮件仅限该用户,因此用户将无法在其他用户的名称。

我认为最好的方法是检查`GenericAPIView`的`post`方法,查看消息作者和当前经过身份验证的用户之间的匹配。问题是我有一个自定义身份验证后端,所以出于某种原因,`request.user`是`AnonnymousUser`,即使我将DRF的默认身份验证设置为`SessionAuthentication`,我仍然得到相同的结果。

`request.user`确实在正常的django视图中返回当前用户,但在DRF视图中没有。

有没有更好的方法来实现这一目标?或者我做错了什么?我非常感谢你的帮助。

1 个答案:

答案 0 :(得分:0)

我认为你应该检查你是否在login_view中调用了django.contrib.auth.login()。