您的位置首页百科知识

前端如何获取token

前端如何获取token

的有关信息介绍如下:

前端如何获取token

前端如何获取token

如果用ThreadLocal的话也挺简单的,在过滤器中解析Token之后将用户ID set 到ThreadLocal中,在Controller中get就可以获取到了

定义:public static ThreadLocal loginUserThreadLocal = new ThreadLocal<>();设置:loginUserThreadLocal.set(userId);获取:loginUserThreadLocal.get()

需要注意的是:如果你的Controller方法用了@HystrixCommand注解,意味着这个方法执行的线程就是hystrix的线程了,过滤器中是容器的线程

这个时候用ThreadLocal是获取不到值的,这就涉及到了一个跨线程传递的问题了

我们直接在切面中对参数进行修改,最简单的方式是直接获取参数列表,然后修改,比如:Object[] args = joinPoint.getArgs();args = 用户ID;return joinPoint.proceed(args);

我们基于约定好的变量名来讲解,反射获取方法名不是很方便,当jdk1.8中其实已经支持了,为了简化,我们可以用注解的方式来获取参数名称,当然这个注解你可以自定义