如何在Django中踢出已登录的用户?

4

我正在使用Django。

如何让已经登录的用户退出?

或者

如何获取用户的会话并将其关闭?


重复的问题:https://dev59.com/LHNA5IYBdhLWcg3wdtld? - John McCollum
1个回答

8
如果您可以访问shell,则可以执行以下操作:
$ ./manage.py shell

In [1]: from django.contrib.sessions.models import Session

In [2]: for s in Session.objects.all():
   ...:     data = s.get_decoded()
   ...:     if data.get('_auth_user_id', None) == YOUR_USER_ID:
   ...:         s.delete()
   ...:         
   ...:         

用一个用户的ID替换YOUR_USER_ID,以将该用户踢出。

关键字'_auth_user_id'可能因版本而异,但我想这对我有效。要检查是否相同,请打印一些s.get_decoded()并查看输出。


哦,没有注意到John的评论... - dmedvinsky

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接