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

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

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


若对用户活动比较关注, 即希望取得比较准确的用户活动的时间, 建议还是用before_request来做.

若只是想获取用户在某个时间段内首次登录的时间(用户最近登录时间), 则可以考虑用其他方法. 假设你是使用Flask-Login做登录, 在比较新的版本中, 存在一个user_accessed信号, 这个信号在用户登录或者从COOKIE加载已保存的用户信息时发送, 通过对这个信号进行监听, 就可以实现最近登录的功能.

下面是简单的示例代码:

from flask.ext.login import user_accessed

@user_accessed.connect_via(app)
def when_user_accessed(sender, **extra):
    user_id = session.get('user_id')
    # 下面可以开始自己的操作流程了, 需要对 user_id 进行判断
    # 首次发送时, user_id 可能为空

退出网站是比较难监控的.


用户一段时间内不用输入密码,即访问页面时通过提交的Cookie进行了自动登录。

此时我们的程序应该会把该用户的信息添加到session域中,一般session都会设定为半小时过期。

我们可以记录该用户创建session的时间,作为用户最近登录时间

【热门文章】
【热门文章】