微信授权-获取微信用户个人信息
官方文档与插件
微信官方文档:https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/Wechat_webpage_authorization.html
插件地址https://github.com/HADB/GetWeixinCode
为什么使用此插件
主要是公司使用的域名非常多,微信后台开放的3个域名完全不够用~
如何使用此插件
使用方法
- 部署get-weixin-code.html至你的微信授权回调域名的目录下
- 使用方式类似于直接通过微信回调的方式,只是将回调地址改成了get-weixin-code.html所在的地址,另外省去了response_type参数(因为它只能为code)以及#wechat_redirect(它是固定的),它们会在get-weixin-code.html里面自己加上
- get-weixin-code.html页面从微信那里拿到code之后会重新跳转回redirect_uri里面填写的url,并且在url后面带上code和state
详细示例
- 前往微信公众平台->接口权限->网页授权获取用户基本信息->修改,填写授权回调页面域名,
- 例如
www.abc.com
在www.abc.com
域名下部署get-weixin-code.html
, - 不一定是根目录,例如:
http://www.abc.com/xxx/get-weixin-code.html
- 假设你的
http://www.xyz.com/hello-world.html
这个页面需要获取微信授权 - 那么你应该使用以下地址来获取授权:
http://www.abc.com/xxx/get-weixin-code.html? appid=XXXX&scope=snsapi_base&state=helloworld&redirect_uri=http%3A%2F%2Fwww.xyz.com%2Fhello-world.html
- 这样最终就会跳转到这样一个地址:
http://www.xyz.com/hello-world.html?code=XXXXXXXXXXXXXXXXX&state=hello-world
,从而你就拿到了授权code以及自定义的state参数了
通过code获取微信用户个人信息
- [前端]用户同意授权后
- [前端]使用如上方法获取到code参数值后,ajax请求该接口
/api/v1/auth/auth/login
- [后端]接收到用户的code参数后,将去调用微信接口,获取到access_token和openid等信息
{ "access_token":"ACCESS_TOKEN", "expires_in":7200, "refresh_token":"REFRESH_TOKEN", "openid":"OPENID", "scope":"SCOPE" }
- [后端]使用access_token和用户openid去调用接口,拉取用户信息
{ "openid": "OPENID", "nickname": NICKNAME, "sex": 1, "province":"PROVINCE", "city":"CITY", "country":"COUNTRY", "headimgurl":"https://thirdwx.qlogo.cn/mmopen/g3MonUZtNHkdmzicIlifHe/46", "privilege":[ "PRIVILEGE1" "PRIVILEGE2" ], "unionid": "o6_bmasdasdsad6_2sgVt7hMZOPfL" }
最后更新于 2021-10-05 01:43:18 并被添加「」标签,已有 803 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处