在django登录中,我们可以输入if request.user.is_authenticated
来检查用户是否已登录。
但如果我们想通过输入用户名来检查特定用户的登录状态,我们会得到以下结果:
#Python
def checkLoginStatus(username):
#do some checks here....
return True or False
最佳答案
Django 不跟踪用户的登录状态。它跟踪:
- session 是否有效(未过期、存在于 session 存储中等)
- 用户上次对自己进行身份验证并从未登录变为已登录的时间(通过
last_login
如果你想跟踪它,你需要自己做:
- 添加 userprofile model具有可为空字段
session_key
. - 添加signal receivers对于logged_in和logged_out事件。
- 发生登录事件时,从
request.session
获取 session key (请求传递给信号)并将其存储在配置文件模型中 - 发生logged_out事件时,设置
session_key
至无 - 现在您可以实现
is_logged_in
属性,从其配置文件模型中检索用户的 session key ,然后通过从Session
获取 session 来检查 session 是否仍然有效。模型。如果有效,则用户已登录。
关于python - django 通过用户名检查用户是否登录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65448811/