PHP 关于动态更新token

小马甲
  • 203

用户请求一个登录的API,帐号密码验证通过后会返回一个token,
这个token是短时有效(1个小时,并不是长期有效或者永久有效),如何在一个小时后用户不需要主动输入帐号密码,也能维持登录状态。
我的思路是将token以及帐号密码数据存储到本地,每次访问接口时将这些数据提交给服务端验证,如果token失效了,则利用存储的帐号密码向登录API发送一次请求,然后再将新的token替换掉失效的。
不知道各位在这方面有没有更好的方案,感觉我想的这个不安全。(除了用户主动退出外)

回复
阅读 2.6k
3 个回答
✓ 已被采纳

客户端不应该存储 用户的用户名与密码, 所以刷新这个功能要使用 刷新token 来实现.

正确的流程:

客户端请求权限->服务端返回 token & 刷新token->客户端token到期->客户端通过刷新token进行刷新->服务器端再次返回新的 token & 刷新token

刷新token 没有时效性, 他的改变只有在新的token与刷新token请求时才会变化

你说了这么一大段。。难道这不是常规网站开发常规使用的cookies吗?

如果你在客户端要存账号密码的话,还用token做什么?
使用token的作用不正是用来登录验证的吗?

建议:
客户端不要保存账号密码,只保存token
如果要自动刷新token时效,可以每次验证的时候查询一下有效的时长,在有效期小于10分钟(这个时间自己定,不能太长)时刷新。

你知道吗?

宣传栏