问题描述
是这样:我身份验证是这么做的,首先app请求登录接口服务端会把登录用户的相关信息连带token(通过用户名、密码、登录时间des加密得到)返回给客户端,同时在服务器上保存(我是用的一个static变量存储的),客户端app每次请求接口都要带上这个token和我服务器上保存的token做对比。那么问题就是:由于我服务器端存储token用的是一个static变量所以每个用户登录会共享这个变量,我要怎么做才能让每个用户登录进来这个变量不共享呢?谢谢各位哥哥解答小弟感激不尽
解决方案
解决方案二:
没有人吗?
解决方案三:
构造一个数据结构:(token,userid)把你原来的静态变量换成map就行了
解决方案四:
引用2楼ygycomon的回复:
构造一个数据结构:(token,userid)把你原来的静态变量换成map就行了
谢谢你的回答么么哒!
解决方案五:
用Map来存放这些token,key是token,value是token的有效时间,这样既可以解决楼主的问题,也可以增加token的时效性认证,如果楼主不需要时效性认证,那就用List来存放这些token吧,不过这样这个List会随着登陆的人登陆的次数越来越多而越来越占内存,用Map的话可以根据时效性删除过时的token,保持那个Map最小
解决方案六:
引用4楼c306081148的回复:
用Map来存放这些token,key是token,value是token的有效时间,这样既可以解决楼主的问题,也可以增加token的时效性认证,如果楼主不需要时效性认证,那就用List来存放这些token吧,不过这样这个List会随着登陆的人登陆的次数越来越多而越来越占内存,用Map的话可以根据时效性删除过时的token,保持那个Map最小
谢谢你!
解决方案七:
引用2楼ygycomon的回复:
构造一个数据结构:(token,userid)把你原来的静态变量换成map就行了
我在问一下这个map是static的吗?
解决方案八:
引用4楼c306081148的回复:
用Map来存放这些token,key是token,value是token的有效时间,这样既可以解决楼主的问题,也可以增加token的时效性认证,如果楼主不需要时效性认证,那就用List来存放这些token吧,不过这样这个List会随着登陆的人登陆的次数越来越多而越来越占内存,用Map的话可以根据时效性删除过时的token,保持那个Map最小
您好,我问下这个map是static的还是实例对象
解决方案九:
用session啊每个用户登录session都是不同的,把对象放在session中不就行了吗
解决方案十:
引用2楼ygycomon的回复:
构造一个数据结构:(token,userid)把你原来的静态变量换成map就行了
我怎么初始化这个map对象引用4楼c306081148的回复:
用Map来存放这些token,key是token,value是token的有效时间,这样既可以解决楼主的问题,也可以增加token的时效性认证,如果楼主不需要时效性认证,那就用List来存放这些token吧,不过这样这个List会随着登陆的人登陆的次数越来越多而越来越占内存,用Map的话可以根据时效性删除过时的token,保持那个Map最小
大神贴个代码出来看看行吗谢谢啊
解决方案十一:
在线等呢挺急的
解决方案十二:
引用8楼u010533788的回复:
用session啊每个用户登录session都是不同的,把对象放在session中不就行了吗
用map哪个你知道么哥哥
解决方案十三:
引用7楼u011508407的回复:
Quote: 引用4楼c306081148的回复:
用Map来存放这些token,key是token,value是token的有效时间,这样既可以解决楼主的问题,也可以增加token的时效性认证,如果楼主不需要时效性认证,那就用List来存放这些token吧,不过这样这个List会随着登陆的人登陆的次数越来越多而越来越占内存,用Map的话可以根据时效性删除过时的token,保持那个Map最小您好,我问下这个map是static的还是实例对象
用static修饰privatestaticMapmap=newHashMap();
解决方案十四:
用Map来存放这些token,key是token,value是token的有效时间,这样既可以解决楼主的问题,也可以增加token的时效性认证,如果楼主不需要时效性认证,那就用List来存放这些token吧,不过这样这个List会随着登陆的人登陆的次数越来越多而越来越占内存,用Map的话可以根据时效性删除过时的token,保持那个Map最小
解决方案十五:
ThreadLocal
解决方案:
问题解决了,虽然不是在论坛上面解决的