uniapp开发⼩程序授权获取⽤户信息⾸先调⽤的API⽅法wx.login() 获取 临时登录凭证code,临时登录凭证code,通过凭证进⽽换取⽤户登录态信息,包括⽤户在当前⼩程序的唯⼀标识当前⼩程序的唯⼀标识(openid)(openid)、开放平台帐号下的唯⼀标识(unionid,若当前⼩程序已绑定到开放平台帐号)开放平台帐号下的唯⼀标识(unionid,若当前⼩程序已绑定到开放平台帐号)及本次登录的会话密钥本次登录的会话密钥(session_key)
(session_key)等。⽤户数据的加解密通讯需要依赖会话密钥完成。⼀、获取临时登录凭证c o de,o penid,unio nid,sessio n_k ey
1.获取临时登录凭证code
2.⽤ code 换取 openid,unionid 和 session_key
在获取到登录成功后返回的 code 后,我们要⽤ code 换取 session_key 和 openid 和 unionid
换取⽅式有两种:
第⼀种不借助后端(不推荐)
不借助后端获取,你必须知道你⼩程序的 AppID(⼩程序ID)和 AppSecret(⼩程序密钥),这个可以在 公众平台⾥⾯,到开发管理->开发设置 中看到,然后⽤AppID和AppSecret以及上⼀步获取到的code请求的de2Session 接⼝,获取openid 和
unionid 和 session_key
注意:这样做的话你的⼩程序的AppID和AppSecret会明⽂出现在前端代码中,有泄漏风险
第⼆种借助后端
借助后端获取实际上就是让后端给你⼀个接⼝,你请求后端的接⼝,后端再去请求的 jscode2session,这样你前端只需要提交code 就可以了。AppID和AppSecret都是保存在后端,不容
易泄漏。本⽂采⽤的就是第⼆种⽅法(注意采⽤第⼆种⽅法需要告诉后端你的AppID和AppSecret是多少,不然前后端不统⼀可能出现错误)
昵称代码转换
⼆、授权登录如何获取⽤户的头像,昵称和⼿机号呢?
1.获取⽤户的头像,昵称,直接调⽤的API⽅法:wx.getUserProfile()
⽤户允许后,该⽅法调⽤成功,可以获取到头像和昵称,但是获取不到⽤户的⼿机号
2.获取⽤户的⼿机号
从基础库 2.21.2 开始,对获取⼿机号的接⼝进⾏了安全升级,需要⽤户主动触发才能发起获取⼿机号接⼝,所以该功能不由 API 来调⽤,需⽤button组件的点击来触发。注意判断⼀下⽤户是否拒绝授权,如果拒绝授权,需要弹框提⽰⽤户重新授权。
<button open-type="getPhoneNumber" @getphonenumber="onGetPhoneNumber">
按钮点击触发事件 onGetPhoneNumber,如果⽤户允许授权 ,可以拿到ptedData(加密的⽤户信息),e.detail.iv(加密算法的初始向量),这两个参数是加密的信息,如果要得到⽤户⼿机号,需要对其进⾏解密,解密有前端解密和后端解密两种⽅式,本⽂采⽤后端解密。后端解密就是让后端创建⼀个接⼝,前端请求这个接⼝,提交 encryptedData 和 iv 和 session_key 让后端给你返回解密后的信息。后端解密后获取到⽤户⼿机号不需要传回前端。
需要注意:AppID使⽤的是测试号的时候,在开发者⼯具⾥⾯是不能上传代码的,只有申请正式号的时候,才可以上传代码。但是基于uniapp开发的⼩程序项⽬,需要先在HBuilderX⾥⾯打包成⼩程序项⽬,再到打包后的⽂件夹mp-weixin
mp-weixin重新拖到开发者⼯具中,再上传到公众平台。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论