springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_网页授权

然后你要去 开发-基本配置 查看你的 开发者ID(AppID) 以及 开发者密码(AppSecret)

springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_微信公共平台_02

这两个信息后面会使用到 而且APPSecret是不再显示的如果需要重置之前的会失效 所以最好自己记录一份以免丢失 

然后还需要去 开发-接口权限 查看 网页服务-网页授权是否获取 未获取的获取 未配置的配置

springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_网页授权_03

本文默认已获取 已配置 不知道的同学可看我之前的博客 里面有网页授权的讲解 这里不做说明 略过

以上前期准备准备好之后 开始正题

一 用户授权并获取code

注意标红的四个参数 APPID填写你公众号里的appid;REDIRECT_URI

举个例子

springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_开发者_04

比方你自己授权验证后的地址是www.baidu.com/wechat 经过转换后 就是 www.baidu.com%2Fwechat这种样子的 不带斜杠的附上同款装换连接:

SCOPE 这个参数是应用授权作用域的 这个千万别看官方提供的填snsapi_login又是一个大坑 

应用授权作用域,snsapi_base (不弹出授权页面,直接跳转,只能获取用户openid),snsapi_userinfo (弹出授权页面,可通过openid拿到昵称、性别、所在地。并且,即使在未关注的情况下,只要用户授权,也能获取其信息)

所以本文只推荐使用 snsapi_userinfo将参数换成这个即可

STATE这个没什么特别的 可以随便填主要是用来返回的时候带给你 以防被攻击的 爱咋填咋填

正确填写完请求后 请求会给你填写的redirect_url发出一个get请求 注意是get并带过来两个参数 一个code一个state state就是看是否一致 这个不重要 我们只要关心code即可 如果出现问题说明你的公众号可能还没有授权的网页 或者是连接参数顺序不对 填写错误 一定要严格按规则填写

二 使用code换取access_token和openid

这里有三个参数要填 前面两个参数就是最开始讲的开发者的那两个参数 第三个code就是我们刚刚获取到的code 发起这个请求我们可以得到

springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_网页授权_05

获取到access_token和openid之后 我们也就能获取到用户的基本信息(昵称 头像)

三 获取用户基本信息

也是和之前一样的操作 填写获取来的token和openid即可 得到如下参数

springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_网页授权_06

这里还有一个坑 这微信登录坑是真的多啊 一步一个坑 昵称那还是乱码 原因是因为微信传回来的时候编码是 IOS-8859-1的还要自己去把他转成UTF-8 如果你本来就是用ISO-8859-1的当我没说

springboot 集成binarywang 实现公众号授权 springboot微信公众号授权登录_微信登录_07

总结微信登录 主要要申请的准备的东西比较多 细小的地方坑也多 没有太难的地方 获取到access_token和openid比较重要 获取到用户基本信息之后 就可以自由操作了。