微信授权-获取微信用户个人信息
官方文档与插件
微信官方文档: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 并被添加「」标签,已有 2529 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处