app 软件的登录状态一般是怎么做的呢

13 天前
 qinconquer
我对于这个部分不是很熟悉,希望各位前辈指点迷津。

我目前的做法是通过 jwt 生成 token ,这里的 token 设置了过期时间,并存储再服务器上的 redis 中。这里的目的是为了限制用户的多个设备。

但因为设置了过期时间,会给用户造成掉登录的情况,请问有什么办法可以实现大部分的 app 都不会掉登录的情况吗。

或者是有更好的方法去实现我提到的问题吗。
501 次点击
所在节点    问与答
5 条回复
rebornlv
13 天前
如果要禁止多设备登录就不用 jwt ,直接生成一个加密的 token 字符串保存到 redis 中。
防止掉登录,可以设置一个过期时间+刷新时间,在有效刷新时间内可以刷新 token
hhecoder
13 天前
直接用 token ,每次请求进来都更新在 redis 中的有效期
lyusantu
13 天前
token 过期时间给-1 或者>1 年就完事了,反正你是靠 redis 来管理的
budgerigar
13 天前
再加一个 refreshToken ,app 登陆时刷新 token
XCFOX
13 天前
都存 redis 了,那用 jwt 设过期时间也没有太大意义了。
我的建议是直接换成类 session token ,格式是 `{user-id}-{random-string}`,拿类 session token 作为键、用户信息作为值存进 redis 。

https://v2ex.com/t/979326

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

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

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

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

© 2021 V2EX