本文主要是介绍长短token生成方式及作用,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
长短token解决方案
1:解释长短token
Token的返回:
用户登陆后,后台会返回给用户两个token,1是长token,2是短token
有效期:
长token有效期为一个月,短token有效期为1小时
访问与再次获取:
APP每次访问数据携带这短token,如果后台中存在短token则证明短token有效可以进行数据访问。
如果没有查到该短token,则APP使用长token去请求短token,如果长token存在,则请求成功后得到的新短token用于数据访问。
如果长token不存在,则用户需要重新登录获取长短token。
后台设计:
用户登录->验证数据库,如果登陆成功则返回给APP一个长token,一个短token
我们在生成长短token的时候将在redis数据库中新增两条记录:
1:key短token,value随机字符串,有效期1小时
2:key是长token,value是短token,有效期30天
环境模拟:
Redis1:(LT:ELEPH)
Redis2:(ST:LT)
如果Redis1超过1小时,短token失效则Redis1消失
这时我们再去查询Redis2,拿着ST看看能不能取到值,如果能取到值则再生成一个Redis1,之后将ST的Value重置成新生成的短Token,之后Redis2的生存时间不改变
如果Reids2也失效的话,拿着ST就取不到数据,这时就应该重新登录,重新获取长短token
短token生成:
Key是短token本体,可以为UUID。。
Value就是一个固定值吧。Base64 (Base64(FamilyId))
UUID:Eleph 时效性1小时
长token生成:
Key是长token本体,用Base64 (Base64((FamilyId+时间)))
Value是短token的UUID 时效性30天
这篇关于长短token生成方式及作用的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!