微信公众平台登录 超详解 Springboot版

今天给大家分享一下 微信公众平台授权登录详解 带图带字 超详解!!!让你少走弯路 少踩坑!!!

首先既然是微信公众平台登录 就要有公众平台的账号(注意:不是微信开放平台)

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


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

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


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

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

一 用户授权并获取code

https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&state=STATE#wechat_redirect

注意标红的四个参数 APPID填写你公众号里的appid;REDIRECT_URI 这个注意了不是直接填你的授权地址 而是需要urlEncode处理之后的地址附上官方参数说明小伙伴们自己看下

https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419316505&token=&lang=zh_CN

举个例子


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

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

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

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

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

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

二 使用code换取access_token和openid

https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code

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


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

三 获取用户基本信息

https://api.weixin.qq.com/sns/userinfo?access_token=TOKEN&openid=OPENID

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


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


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

猜你喜欢

转载自blog.csdn.net/archangeltron/article/details/80832443
今日推荐