小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战

笔记

10、Springboot2.x用户登录拦截器开发实战
    简介:实战开发用户登录拦截器拦截器 LoginInterceptor
        
        1、实现接口 LoginInterceptor implements HandlerInterceptor

        2、重写preHandler
             String accessToken = request.getHeader("token");
            if(accessToken == null){
                accessToken = request.getParameter("token");
            }
            if (accessToken != null ) {
                Claims claims = JWTUtils.checkJWT(accessToken);
                Integer id = (Integer)claims.get("id");
                String  name = (String)claims.get("name");
                request.setAttribute("user_id",id);
                request.setAttribute("name",name);
                //普通用户
                return true;

            }
            return false;
        3、配置拦截器 
        @Configuration
        InterceptorConfig implements WebMvcConfigurer

         @Override
        public void addInterceptors(InterceptorRegistry registry) {

            registry.addInterceptor(new LoginInterceptor()).addPathPatterns("/user/api/v1/*/**");

            WebMvcConfigurer.super.addInterceptors(registry);
        }

        4、响应前端数据
        
        public static void sendJsonMessage(HttpServletResponse response, Object obj) throws Exception {
            Gson g = new Gson();
            response.setContentType("application/json; charset=utf-8");
            PrintWriter writer = response.getWriter();
            writer.print(g.toJson(obj));
            writer.close();
            response.flushBuffer();
        }

开始

新建一个login的拦截器
技术分享图片
实现接口,并重写方法
技术分享图片
重写方法
技术分享图片
接口内有一些默认的方法。jdk8的新特性
技术分享图片
进入Controller之前进行拦截
技术分享图片
首先我们需要拿到token。如果Header里面获取不到。那么就从parameter里面获取。
技术分享图片
解密token获取里面的值
技术分享图片
在最上面定义一个Gson的变量
技术分享图片
封装一相应数据的方法
技术分享图片
技术分享图片
这里再判断一下Claims不等于null
技术分享图片
这里的异常必须修改为在方法上面抛出
技术分享图片
这里是userId不是id刚才这里写错了。
技术分享图片

配置连接器

新建拦截器的配置文件
技术分享图片
增加@Configuration表示这是一个配置文件,实现接口WebMvcConfigurer
技术分享图片
重写接口内的方法
技术分享图片
技术分享图片

技术分享图片
把注册器放进去。这样就把拦截去注册好了。
技术分享图片
新建OrderController
技术分享图片
主要是用来模拟 是否判断登陆了。

测试

启动服务
访问video可以访问到。

访问user下的路径,会被拦截器拦截。

在拦截器内断点调试

随便传一个token的值过去

token虽然有值,但是解密会失败

域名调试

拿到扫码的url地址

跳转成功,把这个token拿到,复制下来

把token复制下来

把token复制下来。然后去访问

进入到拦截器的断点里面。解密成功获取到Claims

放行后会提示下单成功

 

小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战

以上是小D课堂-SpringBoot 2.x微信支付在线教育网站项目实战_5-10.Springboot2.x用户登录拦截器开发实战的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>