uniapp 微信小程序登录授权、获取用户信息、获取手机号、node解密获取用户信息openid

您所在的位置:网站首页 uniapp支付宝小程序获取头像和手机号一起 uniapp 微信小程序登录授权、获取用户信息、获取手机号、node解密获取用户信息openid

uniapp 微信小程序登录授权、获取用户信息、获取手机号、node解密获取用户信息openid

#uniapp 微信小程序登录授权、获取用户信息、获取手机号、node解密获取用户信息openid| 来源: 网络整理| 查看: 265

uniapp 微信小程序授权登录、获取用户信息、获取手机号、node解密获取用户信息openid

授权登录跟获取手机号都需用户点击操作 更新:微信小程序的登录不再弹出弹框;用户信息的获取需要用户手动点击,getUserInfo弃用,改用getUserProfile。 (注:开发者工具注意更新)

1、已授权登录获取用户code(某一处直接调用授权的方法) const _this = this uni.login({ success: (res) => { if (res.errMsg == "login:ok") { _this.code = res.code; // 查询用户 _this.getCode() } else { uni.showToast({ title: "系统异常,请联系管理员!", }); } }, });

授权登录 :getLogin().js

// 授权 const that = this; uni.getProvider({ service: "oauth", success(res) { if (~res.provider.indexOf("weixin")) { // 登录 uni.login({ provider: "weixin", success: (login) => { // 授权登录成功 }, fail: () => { uni.showToast({ title: "请更新最新版本的微信", icon: "none", }); }, }); } }, }); 2、获取用户信息

获取用户信息:

获取头像昵称

方法:

// 获取用户信息 getUserProfile() { const _this = this uni.getUserProfile({ desc: "注册", success: (res) => { _this.userInfo = res.userInfo }, fail: (err) => { console.log(err) } }) }, 3、解密获取openid

用户授权后获取的code,返回到后端(我的是node后端) —需要用到小程序的appid和秘钥(secret) —返回的 result.data 就是解密后的openid和sessionKey

const app_id = app.config.appid; const secret = app.config.secret; const result = await ctx.curl(`https://api.weixin.qq.com/sns/jscode2session?appid=${app_id}&secret=${secret}&js_code=${code}&grant_type=authorization_code`, { dataType: 'json', timeout: 3000 }); const arr = result.data; if (arr.errcode) { return } 4、获取手机号(前端获取)

点击拉起授权手机号按钮:

获取电话号码

getPhoneNumber().js 需要用到 WXBizDataCrypt ,下载放入目录下并引入,手机号解密需要用到code解密后的sessionKey以及小程序的appid,encryptedData和iv是手机号授权的返回数据

var WXBizDataCrypt = require('../../common/WXBizDataCrypt.js') async getPhoneNumber(e) { const _this = this if (e.detail.errMsg == "getPhoneNumber:fail user deny") { //用户决绝授权 //拒绝授权后弹出一些提示 // this.isphone = true } else { //允许授权,新增用户 let app_id = _this.app_id var pc = new WXBizDataCrypt(app_id, _this.session_Key) var data = pc.decryptData(e.detail.encryptedData, e.detail.iv) //data就是手机授权解密好的数据 } },


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3