微信开封平台——根据JWT生成token回写客户端(5)

简介:

用户授权登录之后,需要生成登录凭证,重定向到页面上

之前的access_page表示当前的页面

当我们点击微信登录的时候

url地址栏的state会指向当前的地址

首页点击微信登录

https://open.weixin.qq.com/connect/qrconnect?appid=wx25bc3c42ddcc664f&redirect_uri=https%3A%2F%2Fapi.xdclass.net%2Fpub%2Fapi%2Fv1%2Fwechat%2Fuser%2Fcallback1&response_type=code&scope=snsapi_login&state=https%3A%2F%2Fxdclass.net%2F%23%2Findex%3Flogin_type%3Dpc#wechat_redirect

点开某个页面点击微信登录

二级页面的地址

https://open.weixin.qq.com/connect/qrconnect?appid=wx25bc3c42ddcc664f&redirect_uri=https%3A%2F%2Fapi.xdclass.net%2Fpub%2Fapi%2Fv1%2Fwechat%2Fuser%2Fcallback1&response_type=code&scope=snsapi_login&state=https%3A%2F%2Fxdclass.net%2F%23%2Fcourselist%3Fcp_id%3D2%26%2338%3Bc_id%3D17%26login_type%3Dpc#wechat_redirect

public void wechatUserCallback(@RequestParam(value = "code",required = true) String code,
                               String state, HttpServletResponse response) throws Exception {


    User user = userService.saveWeChatUser(code);
    if(user != null){
        //生成jwt
        String token= JwtUtils.geneJsonWebToken(user);
        System.out.println("token========================"+token);
        /**
         *
         * 获取状态  表示当前的地址
         * 并拼装头像地址+昵称(前端减少数据库的查询)
         * @date: 2019/2/26 21:03
         */
        response.sendRedirect(state+"?token="+token+"&head_img="+user.getHeadImg()+"&name="+user.getName());

    }

Http:

 

 

 

 

整体思路:

  1. 获取当前页面访问地址
  2. 根据User的基本信息生成token
  3. 重定向到指定页面

猜你喜欢

转载自blog.csdn.net/qq_29235677/article/details/87948408