如题,前后端分离,使用 token 鉴权,然后需求用户每一次登录,显示该用户的上次登录时间, 请教一下,使用 token 的话, 这个功能可以实现吗?
1
Hopetree 2019-11-19 16:41:30 +08:00
我记得上次登录时间好像是记录到数据库里面的吧
|
2
bwangel 2019-11-19 16:44:08 +08:00 1
上次登录时间和 Token 无关。
Token 只做两件事情 1. Token 能否被正确解码 2. Token 是否过期 你这个需求直接在 db 里面写一条记录就好了。 |
3
lcy630409 2019-11-19 16:52:32 +08:00
我的理解
Token =session 只不过 token 大多数用在禁 cookie 环境中 |
4
flyingghost 2019-11-19 16:55:31 +08:00
token 设置合理有效期,确保一次登录≈一次授权。
那么授权 token 的时候记录一下就可以当做上一次登录时间。 如果服务端管理 token 生命周期的话,提供合理的 token 刷新机制。 如果 token 自描述生命周期的话,客户端一起参与实现 token/refreshtoken 机制。 |
5
cominghome 2019-11-19 16:57:12 +08:00
同意 2 楼,这需求和 token 无关,无非是 login 模块多取、多写一条数据。
|
6
yeyu123 2019-11-19 17:03:26 +08:00
playload 里多加个字段就 ok
|
7
bwangel 2019-11-19 17:13:09 +08:00
如果有这样的需求 根据登陆时间查询用户。
那么把这个信息写在 Token 里面,查询就会非常麻烦,所以我觉得直接写 db 好一些。 PS:登陆时间和用户活跃度无关,如果想根据用户的活跃度做一些事情,建议在开屏页里面加一个请求,记录用户的开屏时间,来表示用户的活跃度。 |
8
CallMeReznov 2019-11-19 17:17:50 +08:00
上次登录时间不是库里的吗?
每次验证成功后更新下时间,下次验证后在更新? |
10
kayseen OP @Hopetree
@bwangel @lcy630409 @flyingghost @cominghome @yeyu123 感谢各位,应该是要写入数据的,请问一下, 写入时机是不是用户每一次成功调用 login 接口的时候啊? 感谢各位,应该是要写入数据的,请问一下, 写入时机是不是用户每一次成功调用 login 接口的时候啊? |
11
bwangel 2019-11-20 13:41:45 +08:00
|
12
kayseen OP |
13
SjwNo1 2019-11-20 15:02:05 +08:00
鉴权成功直接更新 user 信息即可
|
15
lolizeppelin 2019-11-22 11:41:27 +08:00
认证归认证啊,总不能把用户信息都塞 token 里吧
查询用户信息的时候获取到上次登陆时间就是,不要做塞 token 里这种事 |