jwt如何防止多端登录?
防止多端登录?为什么一定要通过jwt??
jwt里面存的只是用户的基本信息,目的是检验登录时候,能减少一次查库,提高响应时间。
如果要做防止多端登录,只需要在检验jwt成功后,再做一次redis检验就可以了。
redis集群中。效率非常高。redis有个数据结构叫:位图bitmap,命令:setbit key offset 1 意思是将key对应的二进制向量上的offset这个偏移量对应的bit位设置为1。
比如key对应的二进制是:000000,偏移量offset对应的位置是第二个设置为1。 变成010000。
key表示唯一key,offset表示用户id,登录成功就将对应位置设置为1,下线就设置为0这个命令设置为1只能成功一次
setbit islogin id001 1 用户1登录成功
setbit islogin id001 0 用户1下线
setbit islogin id002 1 用户2登录成功
setbit islogin id002 0 用户2下线