Java网页授权登录及获取用户信息---微信授权登录

上篇文章写了在微信授权前的一些配置,现在是正式微信授权获取用户信息。具体可以参考:Java网页授权登录及获取用户信息---个人开发前的配置

参照微信开发文档---网页授权内容,按照步骤操作就行了。https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html

Java网页授权登录及获取用户信息---微信授权登录

1、创建一个SpringBoot项目,然后添加微信开发包等;

Java网页授权登录及获取用户信息---微信授权登录

2、 微信授权(用户同意授权,获取code)

创建一个简单的html,然后转发微信授权url

Java网页授权登录及获取用户信息---微信授权登录

url为:https://open.weixin.qq.com/connect/oauth2/authorize?appid=appid&redirect_uri=redirect_uri&response_type=code&scope=snsapi_userinfo&state=STATE#wechat_redirect

参数可查看官网具体讲解。

访问链接:http://ztfsjz.natapp1.cc/weChat-ztf/test,即可看到授权页面

Java网页授权登录及获取用户信息---微信授权登录

3、 回调链接地址内的处理

用户允许后,微信端以 redirect_uri/?code=CODE&state=STATE形式调用你的redirect_uri接口,然后就可以获取到code,code是用来获取网页授权access_token的。

Java网页授权登录及获取用户信息---微信授权登录

然后使用access_token中的openId、access_token调用微信端的获取用户信息接口即可。使用微信辅助包的话,只需要传入openId即可获取到用户信息了。

Java网页授权登录及获取用户信息---微信授权登录

获取到用户信息之后,进行保存等等处理之后,重定向页面到你的主页面就行了。这里需要注意一下:测试公众号必须关注才可以进行授权处理,不然会报错“必须关注公众号”;正式的公众号不会有这个提示,不关注也可以授权,但是你无法拿到用户信息,只能拿到几个无关紧要的信息,其中一个subscribe参数是是否关注公众号,所以我下面有判断是否关注公众号并做了处理。

Java网页授权登录及获取用户信息---微信授权登录

Java网页授权登录及获取用户信息---微信授权登录

登录成功及未关注效果:

Java网页授权登录及获取用户信息---微信授权登录            Java网页授权登录及获取用户信息---微信授权登录

4、 总结

其实微信公众号授权登录业务处理很简单,步骤就是:登录时发起授权——>用户同意授权获取code——>用code拿到access_token信息——>用access_token的信息去拿用户的所有信息——>完成自己的操作之后,返回首页就行了。

P.S: 微信支付写完之后会上传完整demo资源,需要的朋友可以关注一下。