为了账号安全,请及时绑定邮箱和手机立即绑定

flask记录用户最近一次登录(访问)时间

flask记录用户最近一次登录(访问)时间

www说 2019-04-16 20:27:52
需要显示最近在线过的用户,需要记录用户最近登录时间,但是对于保存密码的用户来说不用登录,如何记录这个最近访问呢?有没有什么简单的办法?目前是在before_request记录,但是发现太浪费资源。也就是需要知道第一次访问改网站和退出该网站?
查看完整描述

2 回答

?
吃鸡游戏

TA贡献1829条经验 获得超7个赞

用户一段时间内不用输入密码,即访问页面时通过提交的Cookie进行了自动登录。
此时我们的程序应该会把该用户的信息添加到session域中,一般session都会设定为半小时过期。
我们可以记录该用户创建session的时间,作为用户最近登录时间
                            
查看完整回答
反对 回复 2019-04-16
?
江户川乱折腾

TA贡献1851条经验 获得超5个赞

若对用户活动比较关注,即希望取得比较准确的用户活动的时间,建议还是用before_request来做.
若只是想获取用户在某个时间段内首次登录的时间(用户最近登录时间),则可以考虑用其他方法.假设你是使用Flask-Login做登录,在比较新的版本中,存在一个user_accessed信号,这个信号在用户登录或者从COOKIE加载已保存的用户信息时发送,通过对这个信号进行监听,就可以实现最近登录的功能.
下面是简单的示例代码:
fromflask.ext.loginimportuser_accessed
@user_accessed.connect_via(app)
defwhen_user_accessed(sender,**extra):
user_id=session.get('user_id')
#下面可以开始自己的操作流程了,需要对user_id进行判断
#首次发送时,user_id可能为空
退出网站是比较难监控的.
                            
查看完整回答
反对 回复 2019-04-16
  • 2 回答
  • 0 关注
  • 1189 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号