为什么有些接口,既有access_token,又有refresh_token,还有keepalive接口?

就是我最近对接一个应用。然后这应用提供一些接口,
接口既有获取access_token接口,又有refresh_token接口,还有keepalive 保持token保活接口,为什么需要这么多类似的token接口。三个作用有哪些,有什么区别吗?

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《L02 从零构建论坛系统》
以构建论坛项目 LaraBBS 为线索,展开对 Laravel 框架的全面学习。应用程序架构思路贴近 Laravel 框架的设计哲学。
讨论数量: 7

不知道,请贴出你的逻辑

1年前 评论

粗浅理解,有错欢迎斧正

  • 过期 是指这个token超出了它的生存时间,但还是在系统中存在的;
  • 失效 是指这个token在系统中不存在了;
  1. access_token 接口一般是登陆后拿token,其实也可以登陆成功之后就返回,主要是用来替代session来实现用户登录态
  2. refresh_token 接口用当前 过期但未失效 token来换取一个新的token, 一个token的过期时间可能为2小时,但在第N个小时内(N>2,比如3,看配置),可以用来换取一个新的token,此时不用重新登陆, 当N > M (比如8),无法再用token换取新的token,就需要重新登陆; 也有的系统用中间件来做,返回头加上新的token, 前端替换一下。
  3. keepalive 不知道啥意思,呃,我们这做法是前端轮询去调接口看token有没有失效,如果失效了就退出登陆(权限变更等操作会强制用户下线,重新登陆)
1年前 评论
donggan (楼主) 1年前

保活接口就是刷新accesstoken接口吧。有刷新接口就是得有这三个接口,正常的逻辑

1年前 评论

我的理解是

  • access_token 接口用来获取token访问其他接口(获取一个有时效的token,例如两小时)
  • refresh_token 接口用来token过期时换取新的token(第一步的token超出两小时失效后,调用此接口获取新token)
  • keepalive接口用来在token即将失效时,延长token使用时间(第一步获取的token即将过期时,调用此接口延长token的时效,比如再增加两小时,这样可以不变更token,继续使用)
1年前 评论

个人理解
access_token : 获取授权,无异议
refresh_token :老token快要失效的时候,获取新token 然后全局替换新token
keepalive :如果将token 分发到其他模块,无法全局替换且当前操作之后的一定时间需要保障token能正常使用

1年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!