博客专区 > huanghq的博客 > 博客详情
一种新的移动APP保持登陆的实现机制介绍
huanghq 发表于1周前
一种新的移动APP保持登陆的实现机制介绍
  • 发表于 1周前
  • 阅读 455
  • 收藏 50
  • 点赞 0
  • 评论 17

IBM Bluemix免费试用!>>>   

摘要: 新的移动APP保持登陆的安全机制
标签: android ios api
共有 人打赏支持
粉丝 3
博文 2
码字总数 2862
评论 (17)
zzuqiang
以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?
ming133
谢谢博主分享,请问更换token的规则是什么,客户app退出了如何更换?
翠翠

引用来自“zzuqiang”的评论

以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?
作者的意思应该是过期时间只是作为“这个 Token 必须要更换了”的依据,而不是“这个 Token 无效了”的依据。

只要没被换过,这个老的 Token 任何时候都可以拿来换一个新的 Token,但是一个老的 Token 不能两次调用更换新 Token 的接口,而且一旦这种情况出现,不管是新的还是旧的 Token 全部作废,强制使用者重新登录,重新获取 Token。
huanghq

引用来自“zzuqiang”的评论

以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?
对应JWT,客户端可自己判断token是否过期.
不要等过期了才换,提前换取.未雨绸缪.
可以在应用启动时换取.
huanghq

引用来自“ming133”的评论

谢谢博主分享,请问更换token的规则是什么,客户app退出了如何更换?
应用启动时换取, 不要等过期了才换,提前换取.
huanghq

引用来自“zzuqiang”的评论

以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?

引用来自“翠翠”的评论

作者的意思应该是过期时间只是作为“这个 Token 必须要更换了”的依据,而不是“这个 Token 无效了”的依据。

只要没被换过,这个老的 Token 任何时候都可以拿来换一个新的 Token,但是一个老的 Token 不能两次调用更换新 Token 的接口,而且一旦这种情况出现,不管是新的还是旧的 Token 全部作废,强制使用者重新登录,重新获取 Token。
对于JWT, token 本身有个过期时间,过期了可以换新.
通常要提前换取,或是有个宽限期. 要避免并发情况下,自己多次换取.
翠翠

引用来自“zzuqiang”的评论

以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?

引用来自“翠翠”的评论

作者的意思应该是过期时间只是作为“这个 Token 必须要更换了”的依据,而不是“这个 Token 无效了”的依据。

只要没被换过,这个老的 Token 任何时候都可以拿来换一个新的 Token,但是一个老的 Token 不能两次调用更换新 Token 的接口,而且一旦这种情况出现,不管是新的还是旧的 Token 全部作废,强制使用者重新登录,重新获取 Token。

引用来自“huanghq”的评论

对于JWT, token 本身有个过期时间,过期了可以换新.
通常要提前换取,或是有个宽限期. 要避免并发情况下,自己多次换取.
那你这个过期时间太短了,客户如果隔了一天没登录,基本就肯定要重新登录了,使用 refresh token 的话,一般可以设置 30 天的有效期呢。
huanghq

引用来自“zzuqiang”的评论

以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?

引用来自“翠翠”的评论

作者的意思应该是过期时间只是作为“这个 Token 必须要更换了”的依据,而不是“这个 Token 无效了”的依据。

只要没被换过,这个老的 Token 任何时候都可以拿来换一个新的 Token,但是一个老的 Token 不能两次调用更换新 Token 的接口,而且一旦这种情况出现,不管是新的还是旧的 Token 全部作废,强制使用者重新登录,重新获取 Token。

引用来自“huanghq”的评论

对于JWT, token 本身有个过期时间,过期了可以换新.
通常要提前换取,或是有个宽限期. 要避免并发情况下,自己多次换取.

引用来自“翠翠”的评论

那你这个过期时间太短了,客户如果隔了一天没登录,基本就肯定要重新登录了,使用 refresh token 的话,一般可以设置 30 天的有效期呢。
隔了一天没使用, 就重新使用时再换取啊.
翠翠

引用来自“zzuqiang”的评论

以旧换新的时机如何把控?客户端自己处理快要过期的token然后去以旧换新?

引用来自“翠翠”的评论

作者的意思应该是过期时间只是作为“这个 Token 必须要更换了”的依据,而不是“这个 Token 无效了”的依据。

只要没被换过,这个老的 Token 任何时候都可以拿来换一个新的 Token,但是一个老的 Token 不能两次调用更换新 Token 的接口,而且一旦这种情况出现,不管是新的还是旧的 Token 全部作废,强制使用者重新登录,重新获取 Token。

引用来自“huanghq”的评论

对于JWT, token 本身有个过期时间,过期了可以换新.
通常要提前换取,或是有个宽限期. 要避免并发情况下,自己多次换取.

引用来自“翠翠”的评论

那你这个过期时间太短了,客户如果隔了一天没登录,基本就肯定要重新登录了,使用 refresh token 的话,一般可以设置 30 天的有效期呢。

引用来自“huanghq”的评论

隔了一天没使用, 就重新使用时再换取啊.
那我没理解错,“过期时间只是作为“这个 Token 必须要更换了”的依据,而不是“这个 Token 无效了”的依据。”
悟饭_east
好文章,mark
silverYi
这个跟微信里面的发消息接口一样,时间到候保留老的token有效,用老的换取新的继续使用
shore
旧换新也不会持续使用旧的token 感觉效果等同refresh设置的短一些
无即是有
确实比oauth2先进一些
huanghq

引用来自“shore”的评论

旧换新也不会持续使用旧的token 感觉效果等同refresh设置的短一些
在Oauth2.0 里 refresh token 设置长时间,就是为了减少使用频率,提高安全性.
如果refresh token设置的短一些, refresh token 就没有必要了.
huanghq

引用来自“silverYi”的评论

这个跟微信里面的发消息接口一样,时间到候保留老的token有效,用老的换取新的继续使用
通常由于时钟差,多数到期的token会有一个宽限期,新旧同时有效.
还记得,换二代身份证吧, 有段时间一代身份证也可以用.
这个旧换新,还有个功能就是发现和阻止异常.
strfreedom
请问如何界定“一个旧Token多次试图换取新Token,表示有异常”这个异常的举动
huanghq

引用来自“strfreedom”的评论

请问如何界定“一个旧Token多次试图换取新Token,表示有异常”这个异常的举动
这个服务器端用表记录一下,就可以判断.
×
huanghq
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: