登录双token方案

token是个啥?

第一次登录成功,服务器会生成一个token,作为之后一系列接口的请求令牌,无需重复使用用户名密码登录。

token方案有几种?

token方案分为单token和双token,今天从单token方案的缺点来引出为什么推荐使用双token方案。

单token的缺点

单token的情况下,如果token过期失效了,就只能被迫中止正在进行的功能操作,进行重新登录,体验非常不友好。也许有人想说,可以设置token过期时间久一点啊,我想说的是,token存在的本身就是用来保护数据安全和登录方便的,如果token过期时间设置的太久,这种安全性就完全没有意义,只要有人拿到token,就可以在很长一段时间内一直请求接口资源,非常危险。

双token是如何解决这种缺陷的?

所以双token方案可以解决这种缺陷。在第一次登录成功后,服务器会生成两个token,分别是access_token和refresh_token,第一个access_token过期时间设置的短一点,第二个refresh_token设置的长一点,两个token搭配使用非常合理。

access_token的存在,保证了登录态的正常验证,因其过期时间的短暂也保证了帐号的安全性。

refresh_token的存在,保证了用户(即使是非活跃用户)无需在短时间内进行反复的登陆操作来保证登录态的有效性,同时也保证了活跃用户的登录态可以一直存续而不需要进行重新登录,其反复刷新也防止某些不怀好意的人获取refresh_token后对用户帐号进行动手动脚的操作。

双token方案按照时序图的执行流程

客户端第一次登录请求成功后,服务器接口会生成两个token,分别是access_token和refresh_token,缓存在比如redis中并设置过期时间,之后的接口请求都会携带access_token进行请求,接口需要先对access_token进行有效期校验,access_token没过期返回所需的接口数据,否则返回给客户端access_token失效状态和refresh_token,客户端拿着refresh_token去刷新access_token,此时先对refresh_token进行有效期校验,refresh_token没过期去去刷新token,得到新的access_token缓存在redis中并设置过期时间返回给客户端,否则不刷新access_token,中止后续操作,跳到登录页重新登录。

登录双token方案

双token方案时序图

实际应用中,两个token的过期时间应结合实际配置,遵守access_token短、refresh_token长原则。

展开阅读全文

页面更新:2024-04-29

标签:方案   时序   帐号   客户端   接口   两个   操作   服务器   时间   用户

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2008-2024 All Rights Reserved. Powered By bs178.com 闽ICP备11008920号-3
闽公网安备35020302034844号

Top