【发布时间】:2015-09-11 23:18:42
【问题描述】:
我正在使用 Django、Django REST 框架、Django-rest-auth 和 Django-allauth 编写服务器应用程序。我有一个用于在用户之间传递消息的方法,这应该只在接收者登录时发生。
然而,似乎用户对象的is_authenticated() 方法返回True,即使用户已经注销(称为rest-auth/logout/,这又应该调用Django 的注销)。什么可能导致这种情况?这里有什么我错过的吗?
这是我的代码:
class SendMessage(generics.CreateAPIView):
permission_classes = (permissions.IsAuthenticated,)
serializer_class = MessageSerializer
def perform_create(self, serializer):
m = self.request.data['msg']
targetUser = User.objects.get(pk = self.request.data['user'])
if targetUser.is_authenticated():
# Send message
else:
# Don't send message
【问题讨论】:
-
有 2 个用户吗?一个发送者和一个接收者?当发送者执行某些操作时,您希望根据接收者是否登录向接收者发送消息?是这样的场景吗?
-
@AnimeshSharma 是的,完全正确。有两个用户,我想检查他们是否都经过身份验证(登录)。 '当前用户'由权限检查,现在我正在尝试检查另一个(目标用户)。
标签: django authentication django-rest-framework django-allauth django-rest-auth