如果使用redisToken的话,用户信息应该怎么存和获取

如果使用redisToken的话,用户信息应该怎么存和获取

如果是RedisToken,相当于就是存了一个随机的字符串,并没有存用户信息,然后网关校验的时候也就是校验一下这个随机字符串是否匹配,匹配的话,网关放行,并没有涉及到用户在数据库中查询出来的信息。那么后续的服务中其实就只能拿到一个userId,那么要怎么去获取用户信息呢?总不能用userId去数据库中查一下吧

String uToken = TOKEN_USER_PREFIX + SYMBOL_DOT + UUID.randomUUID().toString();
redis.set(REDIS_USER_TOKEN + ":" + user.getId(), uToken);

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
风间影月 2023-03-06 10:58:58

查一次数据库,再放到redis里就行,这里不用太高一致性,如果用户修改自己信息,提示用户需要退出重新登录一下,或者直接更新redis就行。

  • 提问者 曹学习 #1

    老师看看这种方案能不能行,在生成随机字符串token的那个地方,再设置一条redis,比如key是那个随机字符串token,然后value是用户信息

    2023-03-06 11:18:45
  • 提问者 曹学习 #2

    之后就是具体服务那里拦截器Interceptor拿到这个随机字符串后再从redis中获取用户信息,存入ThreadLocal

    2023-03-06 11:24:03
  • 风间影月 回复 提问者 曹学习 #3
    可以的,可以用hash这个类型
    2023-03-06 12:35:54
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
Java高级工程师
  • 参与学习       412    人
  • 解答问题       306    个

通过一个大型项目贯穿,掌握主流技术栈,提升技术广度与深度 实现复杂度极高的招聘业务,用户端+企业端+SaaS平台全覆盖 构建技术+业务+工程实战+就业服务闭环,实现从初中级到高级工程师的跨越!

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师