小程序填坑之路(四):微信登录获取unionid
2017-11-18 11:53
627 查看
在微信小程序中,因为各种各样的原因我们会需要获取到用户的unionid,但是小程序的wx.login()在一般情况下只能获取到openid,下面就简单来讲一下如何获取unionid以及当中的神坑。
由以上代码块可知,获取unionid主要分为以下两个步骤:
1. 调用wx.login()获取登录凭证code
2. 通过登录凭证code调用
注意了前方高能:
上述代码实现,表面上看起来没有什么问题,实际上在手机调试中以及开发工具的调式中也没有什么问题,但是如果你
解决方法:
将访问
最后还有一种情况:
同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。
所以开发者可以先通过wx.login()获取unionid,如果没有获取到,在调用后台获取unionid的接口,不必每次都直接调用后台获取unionid的接口,效率更高!
微信登录
在此之前,需要将微信开放平台绑定小程序,才可获取unionid错误示例: wx.login({ success: res => { // 登录凭证 let _code = res.code; if (_code) { wx.request({ url: 'https://api.weixin.qq.com/sns/jscode2session', data: { // 小程序注册时生成的appid 'appid': CONFIG.App.ID, // 小程序注册时生成的secret 'secret': CONFIG.App.SECRET, // wx.login()返回的登录凭证 'js_code': _code, // 固定值 'grant_type': 'authorization_code' }, success: res => { console.log(res.data.unionid); } }) } }, fail: res => { wx.showToast({ title: '微信登录失败', duration: 1500 }); } });
由以上代码块可知,获取unionid主要分为以下两个步骤:
1. 调用wx.login()获取登录凭证code
2. 通过登录凭证code调用
https://api.weixin.qq.com/sns/jscode2session接口,获取用户的unionid
注意了前方高能:
上述代码实现,表面上看起来没有什么问题,实际上在手机调试中以及开发工具的调式中也没有什么问题,但是如果你
关闭手机调试,或者选择开发工具
校验安全域名、TLS 版本以及 HTTPS 证书,你就会懵逼了,发现一直报错
https://api.weixin.qq.com不在合法域名列表内,当你去微信小程序后台的开发设置中添加这个域名时,你会惊喜的发现
https://api.weixin.qq.com这个域名不能添加,有木有很惊喜,有木有很意外!!!
解决方法:
将访问
https://api.weixin.qq.com/sns/jscode2session获取unionid这个步骤交给后台去做,让后台给你返回(只能后台返回)!!!(在正式上线后,客户端是不能访问到
https://api.weixin.qq.com/sns/jscode2session这个接口的)
最后还有一种情况:
同一个微信开放平台下的相同主体的App、公众号、小程序,如果用户已经关注公众号,或者曾经登录过App或公众号,则用户打开小程序时,开发者可以直接通过wx.login获取到该用户UnionID,无须用户再次授权。
所以开发者可以先通过wx.login()获取unionid,如果没有获取到,在调用后台获取unionid的接口,不必每次都直接调用后台获取unionid的接口,效率更高!
相关文章推荐
- 微信小程序——获取用户unionId
- 微信小程序开发之用户系统 一键登录 获取session_key和openid
- 微信小程序维护登录态与获取用户信息
- 【微信小程序】登录功能实现及讲解(获取用户唯一标识)
- 微信小程序维护登录态与获取用户信息
- 微信小程序获取手机号授权用户登录功能
- 微信小程序维护登录态与获取用户信息
- 微信小程序之获取并解密用户数据(获取openId、unionId)
- 微信小程序维护登录态与获取用户信息_0
- 微信小程序维护登录态与获取用户信息
- 微信小程序——获取用户unionId
- 微信小程序维护登录态与获取用户信息
- 微信小程序获取循环元素id以及wx.login登录操作
- 详解微信小程序 登录获取unionid
- 微信小程序登录获取用户信息
- 微信小程序获取手机号授权登录
- 微信小程序开发之用户系统 一键登录 获取session_key和openid
- 微信小程序例子——获取用户登录信息
- 微信小程序开发一键登录 获取session_key和openid实例
- 微信小程序之获取并解密用户数据(获取openId、unionId)