最近在做授权登录的时候遇到一个大坑,回调的地址的问题。
微信登录授权首先要在微信公众平台注册一个账号,然后获取 appID和appsecret
然后点击授权的
切记一定不能加上http://这些协议的东西;
这个域名是内网穿透获取用来通过微信授权的地址,
没有域名具体可以看这个博客:
JAVA实现微信授权登录(详解)_前端菜鸟中的战斗机的博客-CSDN博客_微信授权登录
然后写一个AuthUtil 工具类
注意:我这边写的是我本地的接口
在Controller层
@RequestMapping("/health-service/wxlogin")public void wx(HttpServletRequest request, HttpServletResponse response) throws IOException {//第一步:引导用户进入授权页面同意授权,获取codeStringBuilder builder = new StringBuilder("https://open.weixin.qq.com/connect/oauth2/authorize?appid=");builder.append(AuthUtil.APPID);builder.append("&redirect_uri=");builder.append(URLEncoder.encode(AuthUtil.backUrl));//开发文档要求转换builder.append("&response_type=code");builder.append("&scope=snsapi_userinfo");builder.append("&state=STATE#wechat_redirect");//授权页面地址//将StringBuilder转换成StringString url=builder.toString();//重定向到授权页面response.sendRedirect(url);}
把接口放进微信开发者工具的时候
弹出redirect_uri 参数错误
忙碌了两天终于修复,觉得自己的回调地址有问题、把上面AuthUtil里面的回调地址换成了之前在 网页授权获取用户基本信息里面的地址,加上http://。
再到微信开发者工具当中测试接口
这就成功了