你能在停用时使特定用户的会话失效吗?

2024-04-24 23:52:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我为Django用户模型在代理类上定义了一个deactivate方法,以防止他们登录(例如,如果他们已经过期),但是如果他们仍然登录,我希望使他们的所有会话失效。在

有没有一种Django认可的或Python式的方法来做到这一点?在

因为会话是编码的,所以最好不要遍历它们并对每个会话进行解码以找到与该用户相关联的会话。我已经研究过关于密码更改的无效会话,Django支持这种方法,但是在我的例子中,用户没有更改自己的密码,而是我强迫他们注销。这是我的客户用户模型:

class CustomUser(User):
        class Meta:
            proxy = True

        def deactivate(self):
            if self.is_active:
                self.is_active = False
                self.save()

        def activate(self):
            if not self.is_active:
                self.is_active = True
                self.save()

Tags: django方法用户模型selftrue密码代理