您的位置:首页 > 健康 > 美食 > 中国新闻社邮箱_福州短视频seo_湖北短视频seo营销_网络外包

中国新闻社邮箱_福州短视频seo_湖北短视频seo营销_网络外包

2025/2/24 2:29:07 来源:https://blog.csdn.net/c1tenj2/article/details/142756975  浏览:    关键词:中国新闻社邮箱_福州短视频seo_湖北短视频seo营销_网络外包
中国新闻社邮箱_福州短视频seo_湖北短视频seo营销_网络外包

单token

登录

用户输入账号密码,前端接收传递到后端,后端校验正确后返回一个token到前端,后续读写数据的请求需要在请求头中携带这个token。

当token过期时,会要求用户重新登录。

存在的问题

假设这个token设置为2小时。那么如果这个token泄露了,这个账号将会有2小时处于危险中,直到这个token过期。


双token

需要先明确的是:

1.access_token只用于读写数据,设置时长为1min

2.refresh_token只用于刷新access_token,设置时长为2h


下述案例默认token校验都成功

登录:

用户输入账号密码,前端接收传递到后端,后端校验正确后返回access_token,refresh_token到前端。

查看订单(登录后):

access_token未过期

用户在前端输入相关的参数后,发送查看订单的请求。请求头中只携带access_token,后端校验access_token正确且尚未过期,返回结果给前端。

access_token过期

用户在前端输入相关的参数后,发送查看订单的请求。请求头中只携带access_token,后端校验access_token已经过期,返回状态码401表示access_token过期,且同时返回原始请求为:orders/list。(保存在统一封装结果Result中的code属性和data属性)

前端得知401的状态码,知道是access_token过期了,需要更换。前端发送请求:refresh 到后端,后端校验refresh_token正确且尚未过期,生成一组新的access_token和refresh_token到前端,前端接收并保存。

前端重新发送原始请求:orders/list,并携带新的access_token到后端。后端校验access_token正确且尚未过期,返回结果给前端。

refresh_token过期

用户在前端输入相关的参数后,发送查看订单的请求。请求头中只携带access_token,后端校验access_token已经过期,返回状态码401表示access_token过期,且同时返回原始请求为:orders/list。(保存在统一封装结果Result中的code属性和data属性)

前端得知401的状态码,知道是access_token过期了,需要更换。前端发送请求:refresh 到后端,后端校验refresh_token,发现refresh_token已经过期,则要求用户重新登录。


总结

双token校验解决了单token校验存在的问题,理由如下:

1.假设access_token泄露,那么这个账号处于危险期的时间只有1min,因为1min后,access_token就会刷新

2.假设refresh_token泄露,由于refresh_token只在刷新access_token时才会被使用到,在请求数据时用的是access_token,access_token校验都过不了,就不会有危险。(当然,如果access_token和refresh_token都泄露,那是彻底完蛋了)

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com