网上搜索找到一个方法:即在第一次用账号密码登录服务器会返回两个 token,时效长短不一样。短的时效过了之后,发送时效长的 token 重新获取一个短时效,如果都过期,就需要重新登录了。
1
imherer 2017-09-16 11:45:53 +08:00
参考微信的吧,就是这样设计的。 微信的长 token 是一个月,短的好像是 2 小时。
|
2
mengskysama 2017-09-16 12:47:25 +08:00 via iPhone
参考 oauth2 文档
|
3
wlee1991 2017-09-16 12:56:54 +08:00
加一个 flag
|
4
pynix 2017-09-16 14:26:56 +08:00
oauth
|
5
pynix 2017-09-16 14:28:30 +08:00
普通自家 app 不用考虑客户端过期,过期主要是针对把资源提供给别人用的场景。
|
6
abcbuzhiming 2017-09-16 15:24:43 +08:00
楼主你这个方案完全不合理,为什么不能直接用哪个长期的 token 呢?怕被人窃取导致安全问题?
|
7
guyskk 2017-09-16 15:52:23 +08:00 via Android
@abcbuzhiming
oauth2 就是两个 token,我也想知道为啥这样设计~ |
8
zjp 2017-09-16 17:34:04 +08:00 1
两个 Token 只给自己增加了复杂度。一个过期的 Token 只能换取一个新的 Token 的方式可能更好
http://www.jianshu.com/p/b4cf771e570e |
9
lianyue 2017-09-16 17:39:15 +08:00
30 天有效期 低于 20 天自动续期到 30 天就好了呀 超过 30 天不访问 就需要重新登录
|
10
lslqtz 2017-09-16 18:04:15 +08:00
过期后自动获取新 token,用另外一个 token 去获取干嘛。。
|
11
workwonder 2017-09-16 18:13:51 +08:00 via Android
我也是实现成自动续期了。实际的有效期比较短,但是服务器每次见到 token 发来,都会自动续满。
不知这样安全性如何? |
12
Cabana 2017-09-16 21:26:00 +08:00 via Android
|
13
kalman03 2017-09-16 22:39:19 +08:00 2
每次打开 APP,用客户端中已存在的 token,访问服务端刷新 token。逻辑为:
若客户端 token 不存在,表示未登录。 若客户端用旧的 token 刷新请求,服务端告知 token 失效( token 获取不到对应用户信息),则表示需要重新登录。 若客户端用旧的 token 刷新请求,服务端正常响应,则用获取到的新 token 替换掉该老 token。 如此,只要用户在 token 的有效期内访问 app,则用户长期无需登录。 |