SpringBoot2.0(九):SpringBoot2.0 实现微信授权登录并且获取用户信息
2019-03-21 20:00
846 查看
第一步:配置域名
由于我是本地测试,需要一个域名映射工具,改工具使用非常简单,如果自己有域名可以使用自己的域名(自己的域名必须备案)如果没有可以在第一个输入框里面输入自己的域名前缀!微信授权登录端口必须为80,然后点击后台运行映射既可以了!
工具下载地址: 点我下载
下面是怎么配置域名,配置完域名以后需要把一个MP_verify_xK4DtJdHxlgIHIju.txt放到项目根目录里面
/** * 配置微信文件 */ @GetMapping(value = "/MP_verify_xK4DtJdHxlgIHIju.txt") @ResponseBody public String config() { return "xK4DtJdHxlgIHIju121"; };
具体配置域名查看以下连接:
https://jingyan.baidu.com/article/3c48dd34a2e52ee10be358f0.html
第二步:配置yml文件
# 项目相关配置 XF: # 微信授权登录配置 # 凭证获取GET wx_token_url: https://open.weixin.qq.com/connect/oauth2/authorize? # 用户同意授权,回调url----你的域名后面再加上/getcode wx_redirect_url: XXXX.XXX/getcode # 获取openid wx_openid_url: https://api.weixin.qq.com/sns/oauth2/access_token? # 拉取用户信息 wx_userinfo_url: https://api.weixin.qq.com/sns/userinfo? # 微信appid-----换成自己的 wx_appid: XXXXX # 微信appSecret-----换成自己的 wx_secret: XXXX
第三步:跳转微信然后获取code
@GetMapping(value = "/wxLogin") public String get() { String url = wx_token_url + "appid=" + wx_appid + "&redirect_uri=" + wx_redirect_url + "&response_type=code&scope=snsapi_userinfo&state=123#wechat_redi"; return "redirect:" + url; }
第四步:跳转微信然后获取code
导入阿里云的JSON
<!-- 阿里云json --> <dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.47</version> </dependency>
里面用到的doPost()方法请点击这里前去复制;
代码:
/** * 获取Code * @param code Code * @return */ @RequestMapping(value = "/getcode") @ResponseBody public String getCode(String code) { // 根据Code获取Openid String openidUrl = wx_openid_url + "appid=" + wx_appid + "&secret=" + wx_secret + "&code=" + code + "&grant_type=authorization_code"; String openidMsg = MyHttpUtils.doPost(openidUrl, "", CharsetKit.UTF_8); // 解析返回信息 JSONObject result = JSON.parseObject(openidUrl); // 网页授权接口调用凭证 String access_token = result.getString("access_token"); // 用户刷新access_token String refresh_token = result.getString("refresh_token"); // 用户唯一标识 String openid = result.getString("openid"); System.err.println("code:" + code); System.err.println("网页授权接口调用凭证:" + access_token); System.err.println("用户刷新access_token:" + refresh_token); System.err.println("用户唯一标识:" + openid); // 拉取用户信息 String userInfoUrl = wx_userinfo_url + "access_token=" + access_token + "&openid=" + openid + "&lang=zh_CN"; String userInfoMsg = MyHttpUtils.doPost(userInfoUrl, "", CharsetKit.UTF_8); // 解析返回信息 JSONObject userInfo = JSON.parseObject(userInfoMsg); System.err.println("用户openid:" + userInfo.getString("openid")); System.err.println("名字:" + userInfo.getString("nickname")); // 值为1时是男性,值为2时是女性,值为0时是未知 System.err.println("性别:" + userInfo.getString("sex")); System.err.println("省份:" + userInfo.getString("province")); System.err.println("城市:" + userInfo.getString("city")); System.err.println("国家:" + userInfo.getString("country")); System.err.println("头像:" + userInfo.getString("headimgurl")); System.err.println("特权:" + userInfo.getString("privilege")); System.err.println("unionid:" + userInfo.getString("unionid")); return code; }
官方文档:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421140842
相关文章推荐
- 从零实现 Spring Boot 2.0 整合 weixin-java-mp(weixin-java-tools) 获取 openId,用于微信授权
- Spring Boot 微信-网页授权获取用户信息
- ASP .NET MVC 微信授权获取用户信息并实现登录
- 微信订阅号里实现oauth授权登录,并获取用户信息 (完整篇)
- Android集成原生微信授权获取用户信息登录
- 微信授权登录并获取用户信息接口开发
- 微信第三方登陆,无需注册一键登录,获取用户信息,PHP实现方法.
- 微信授权登录并获取用户信息接口开发
- 微信开发笔记——微信网页登录授权,获取用户信息
- 夺命雷公狗---微信开发53----网页授权(oauth2.0)获取用户基本信息接口(3)实现世界留言版
- 微信公众号实现扫码获取微信用户信息(网页授权)
- 微信开发笔记——微信网页登录授权,获取用户信息
- spring boot +security获取当前登录用户信息
- java实现微信公众号授权登录获取用户信息流程
- 微信 网页授权获取用户基本信息(OAuth 2.0)
- Java 微信登录授权后获取微信用户信息昵称乱码问题解决
- PHP+TP框架实现微信网页授权,获取用户信息
- 微信api 第三方平台授权 登录 ,获取用户信息
- PHP+TP框架实现微信网页授权,获取用户信息
- 基于Springboot的微信公众号接入、通过网页授权机制获取用户信息