flask 使用 token 鉴权,怎么获取用户的上次登录时间?

2019-11-19 16:22:12 +08:00
 kayseen

如题,前后端分离,使用 token 鉴权,然后需求用户每一次登录,显示该用户的上次登录时间, 请教一下,使用 token 的话, 这个功能可以实现吗?

3698 次点击
所在节点    Python
15 条回复
Hopetree
2019-11-19 16:41:30 +08:00
我记得上次登录时间好像是记录到数据库里面的吧
bwangel
2019-11-19 16:44:08 +08:00
上次登录时间和 Token 无关。

Token 只做两件事情

1. Token 能否被正确解码
2. Token 是否过期

你这个需求直接在 db 里面写一条记录就好了。
lcy630409
2019-11-19 16:52:32 +08:00
我的理解
Token =session
只不过 token 大多数用在禁 cookie 环境中
flyingghost
2019-11-19 16:55:31 +08:00
token 设置合理有效期,确保一次登录≈一次授权。
那么授权 token 的时候记录一下就可以当做上一次登录时间。

如果服务端管理 token 生命周期的话,提供合理的 token 刷新机制。
如果 token 自描述生命周期的话,客户端一起参与实现 token/refreshtoken 机制。
cominghome
2019-11-19 16:57:12 +08:00
同意 2 楼,这需求和 token 无关,无非是 login 模块多取、多写一条数据。
yeyu123
2019-11-19 17:03:26 +08:00
playload 里多加个字段就 ok
bwangel
2019-11-19 17:13:09 +08:00
如果有这样的需求 根据登陆时间查询用户。

那么把这个信息写在 Token 里面,查询就会非常麻烦,所以我觉得直接写 db 好一些。

PS:登陆时间和用户活跃度无关,如果想根据用户的活跃度做一些事情,建议在开屏页里面加一个请求,记录用户的开屏时间,来表示用户的活跃度。
CallMeReznov
2019-11-19 17:17:50 +08:00
上次登录时间不是库里的吗?
每次验证成功后更新下时间,下次验证后在更新?
hyperbin
2019-11-19 17:27:46 +08:00
@lcy630409 你理解错了
kayseen
2019-11-20 09:05:11 +08:00
@Hopetree
@bwangel
@lcy630409
@flyingghost
@cominghome
@yeyu123
感谢各位,应该是要写入数据的,请问一下,
写入时机是不是用户每一次成功调用 login 接口的时候啊?
感谢各位,应该是要写入数据的,请问一下,
写入时机是不是用户每一次成功调用 login 接口的时候啊?
bwangel
2019-11-20 13:41:45 +08:00
@kayseen

看你们的产品需求啊。

“上次登录时间”从名字来看,就是每次登录的时候记录一次。

但具体细节和你们 PM 商量啊,他要用这个时间做什么事情?这个时间什么时候记录比较好?
kayseen
2019-11-20 14:28:38 +08:00
@bwangel
但是使用 token 的话,就不需要登录接口了呀...
浏览器记录了 token,直接就进入了,这个时候不就没法记录了...
SjwNo1
2019-11-20 15:02:05 +08:00
鉴权成功直接更新 user 信息即可
bwangel
2019-11-20 16:36:35 +08:00
@kayseen 前端需要请求接口获取 Token 啊,在获取 Token 的接口里面记录就好了。
lolizeppelin
2019-11-22 11:41:27 +08:00
认证归认证啊,总不能把用户信息都塞 token 里吧

查询用户信息的时候获取到上次登陆时间就是,不要做塞 token 里这种事

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/621074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX