首页   注册   登录
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  Java

想做这么一个功能,在访问接口的时候,根据 token 获取 redis 中的当前用户的信息,通过某种方式把这个用户信息注入到下面接口中的 CurrentMember 中,想请教一下这个方式应该如何来实现,获取有什么好的思路吗?

  •  
  •   jackzhan · 43 天前 · 1103 次点击
    这是一个创建于 43 天前的主题,其中的信息可能已经有所发展或是发生改变。

    想做这么一个功能,在访问接口的时候,根据 token 获取 redis 中的当前用户的信息,通过某种方式把这个用户信息注入到下面接口中的 CurrentMember 中,想请教一下这个方式应该如何来实现,获取有什么好的思路吗

    使用的是 SpringCloud

    @PostMapping("/createUser")
    public ResultResponse createUser(@RequestBody MemberQueryRequest request, CurrentMember member){
    return memberService.createUser(request);
    }

    14 回复  |  直到 2019-06-06 13:48:44 +08:00
        1
    soupu626   43 天前
    为啥不在拦截器里设线程变量呢
        2
    jackzhan   43 天前
    @soupu626 没这样做过。。去查查文档
        3
    Shaw314   43 天前 via Android   ♥ 1
    实现 WebMvcConfigurer 接口,重写 addArgumentResolvers?
        4
    jackzhan   43 天前
    @Shaw314 我去看看这个方法
        5
    midkingking   43 天前   ♥ 1
    addArgumentResolvers
        6
    FleyX   43 天前
    在拦截器或者过滤器里处理,取到 token,根据 token 从 redis 查用户信息,然后放到 threadlocal 里,这样只要在这个线程上运行的代码都能方便的获取到。
        7
    whp1473   43 天前
    使用拦截器可以做,可以再请求时拦截该请求,解析当中的 token,然后获取 redis 中信息,创建一个 CurrentMember,放入 ThreadLoacl,以及在执行 hander(反射执行方法)时将 CurrentMember 传入第二个参数
        8
    zhuzhiqiang   43 天前
    自定义注解 在 AOP 环绕通知中检测解析注解 根据注解信息 把切点方法的 args[n] 赋值自定义值
        9
    qinxi   43 天前   ♥ 1
    你这个有现成的轮子 叫 spring-session-data-redis
        10
    jackzhan   43 天前
    获取当前访问 RequestMapping,怎么去获取呀
        11
    EastLord   43 天前
    SecurityContext?
        12
    ztlong   43 天前
    HttpServletRequestWrapper 重写 getParameterValues,搭配 Filter 就可以实现你要的能力
        13
    hosaos   42 天前
    拦截器+ThreadLocal
        14
    kevinWHX   42 天前   ♥ 1
    关于   ·   FAQ   ·   API   ·   我们的愿景   ·   广告投放   ·   感谢   ·   实用小工具   ·   3192 人在线   最高记录 5043   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.3 · 19ms · UTC 04:40 · PVG 12:40 · LAX 21:40 · JFK 00:40
    ♥ Do have faith in what you're doing.