jwt续签为什么要使用双token,没看明白啊,感觉单个token也可以啊,每个token设置2个小时过期时间,超过一个小时刷新,超过两个小时失效,这样不行吗?
一个也可以的,只不过如果过期时间设置得太长,用户数据的安全性将大打折扣;过期时间设置得太短,用户就必须每隔一段时间重新登录,以获取新的凭证,这会极大挫伤用户的积极性,所以两个就是为了解决安全性和用户体验方面的矛盾的,你也可以参考这篇文章进行理解
access_token是有有效期的,如果保证永久有效,那可以用单token;
那如果access_token的有效期并非永久,这种时候用单token呢,这就相当于你一个账号长时间没登录,被系统封了,那你再用这个账号密码是无法登录的,这个做法没有解封措施,一旦发生修改密码或者access_token过期未刷新的情况,直接无法使用,引起骂声一片。
这种背景下,refresh_token应运而生,这相当于你一段时间没登录,需要重新进行认证,但是只要通过refresh_token认证最终还是可以登录的,它是一种安全措施,但是更温和一些,不直接封账号封死。
你需要保证token永远是有效的,否则失效后,不能解析,影响业务。