uni-app微信小程序获取手机号授权登录(复制即用,js完成敏感数据对称解密,无需走服务端处理)

news/2024/11/8 18:38:02/

目录

一、示例

二、具体实现说明


一、示例

  • 获取到的手机号

二、具体实现说明

属性说明
属性名说明生效时机
@getphonenumber获取用户手机号回调open-type="getPhoneNumber"
  •  按钮写法
<template><view class="login"><view class="content"><button class="button_wx" open-type="getPhoneNumber" @getphonenumber="getPhoneNumber"><u-icon name="weixin-fill" color="#FFFFFF" size="50"></u-icon><text class="button_text">授 权 登 录</text></button></view></view>
</template>
接口说明
接口说明
wx.login()获取登录凭证(code),通过凭证进而换取用户登录态信息
auth.code2Session登录凭证校验
参数说明
参数说明
code用户登录凭证(有效期五分钟),只能消费一次
WXBizDataCrypt.js用于对称解密微信接口返回的敏感数据(底部标红处有下载地址
appid微信公众号平台申请的AppID(小程序ID)
secret微信公众号平台申请的AppSecret(小程序密钥)
js_code登录时获取的 code
grant_type授权类型(只需填写 authorization_code)
返回值说明
返回值说明
openid用户唯一标识
session_key会话密钥
unionid用户在开放平台的唯一标识符,若当前小程序已绑定到微信开放平台帐号下会返回,详见 UnionID 机制说明
errcode错误码
errmsg错误信息
encryptedData包括敏感数据在内的完整用户信息的加密数据
iv加密算法的初始向量,详见 用户数据的签名验证和加解密
errcode的合法值
说明
-1系统繁忙,此时请开发者稍候再试
0请求成功
40029code 无效
45011频率限制,每个用户每分钟100次
40226高风险等级用户,小程序登录拦截 。风险等级详见用户安全解方案
  • 解密算法js下载

        下载地址:WXBizDataCrypt.js 

  •  具体实现(代码复制即用)
<script>import WXBizDataCrypt from "@/utils/WXBizDataCrypt.js";//必要解密jslet that;export default {data() {return {appid: '填写你自己的appid',//必要secret: '填写你自己的secret',//必要code: '',//临时登录凭证};},mounted() {that = this;that.isLogin();that.getWxCode();},methods: {isLogin() {try {const phoneNumber = uni.getStorageSync('phoneNumber');if (phoneNumber) {//自动登录// 业务登录方法}} catch (e) {// error}},// 获取临时登录凭证getWxCode() {wx.login({success: res => {console.log('获取用户临时登录凭证code:', res.code);that.code = res.code;}})},// 获取手机号的回调函数getPhoneNumber(e) {const {errMsg,encryptedData,iv} = e.detail;if (e.detail.errMsg == 'getPhoneNumber:fail user deny') {console.log('用户拒绝授权=>');} else {console.log('用户同意授权=>', errMsg);console.log('用户手机号加密数据:', e.detail.encryptedData);console.log('加密算法的初始向量:', iv);console.log('开始校验登录凭证code=>');//登录凭证校验,返回用户唯一标识、会话密钥uni.request({url: 'https://api.weixin.qq.com/sns/jscode2session',//微信登录凭证校验接口data: {appid: that.appid,secret: that.secret,js_code: that.code,grant_type: 'authorization_code'},success(sessionRes) {console.log('登录凭证code校验成功=>');const {openid,session_key} = sessionRes.data;console.log('用户唯一标识:', openid);console.log('会话密钥:', session_key);console.log('开始解密用户手机号=>');var pc = new WXBizDataCrypt(that.appid, session_key);//解密用户数据var data = pc.decryptData(encryptedData, iv);if (data) {console.log('用户手机号解密成功: ', data.phoneNumber);uni.setStorageSync("phoneNumber", data.phoneNumber);// 业务登录方法// that.startLogin(data.phoneNumber);}}});}},}}
</script><style lang="scss" scoped>.login {min-height: 100vh;}.content {margin-top: 500rpx;}.button_wx {background-color: #07c160;display: flex;justify-content: center;align-items: center;color: #FFFFFF;font-size: 30rpx;width: 601rpx;height: 100rpx;border-radius: 2.5rem;}.button_text {font-size: 20px;margin-left: 0.5em;}
</style>



http://www.ppmy.cn/news/543180.html

相关文章

第三章 处理机调度与死锁

目录 一、调度的概念、层次 2.1 调度的基本概念 2.2 调度的三个层次 2.2.1 高级调度 2.2.2 低级调度 2.2.3 中级调度 2.2.3.1 进程的挂起态 2.2.4 三层调度的联系、对比 二、进程调度的时机、切换与过程、方式 2.1 进程调度的时机 2.2 进程调度的方式 2.2.1 非抢占…

Neutrino 北京活动| 1月14日以太坊君士但丁堡升级专场分享会

千呼万唤始出来&#xff0c;以太坊的重大升级&#xff0c;君士坦丁堡硬分叉将于2019年1月16日开启。这次以太坊的升级&#xff0c;将是决定以太坊未来走向的关键一步。在行业寒冬期&#xff0c;此次硬分叉之后&#xff0c;究竟以太坊将走向何处&#xff0c;我们拭目以待。 为此…

access 战地1不加入ea_《战地5》即日起加入EA Access免费阵容

今天(6月7日)EA官方宣布《战地5 Battlefield 5》于即日起正式加入EA Access免费阵容&#xff0c;EA Access用户们可以从现在开始下载体验本作。稍后于8月2日发售的《麦登橄榄球20》也将向EA Access用户开放优先体验。 截至目前EA Access的免费Xbox One游戏包含《战地5》、《NBA…

psp模拟器完美字库_PS3模拟器《但丁地狱》试玩演示!中配电脑即可60帧

关注PS3模拟器的同学们&#xff0c;好消息来啦&#xff01;PS3模拟器“RPCS3”的开发团队昨日确认&#xff0c;目前PS3游戏《但丁地狱》目前已经可以用“RPCS3”完整通关了&#xff01;以下是一段“RPCS3”模拟器的《但丁地狱》的试玩演示&#xff0c;一起来看看吧&#xff01;…

一份给艺术爱好者的书单

此书单包括三份&#xff1a; 一、中国美院彭哲老师给入学新生的推荐书目 二、浙江大学人文学院读书节时杨振宇老师的推荐的100本书目 三、整理后精华版书单 一、中国美院彭哲老师给入学新生的推荐书目 本书单以类别分别分为&#xff1a; A专业技法用书B艺术史C艺术理论D文化形…

用Jsoup抓取长颈鹿但丁图片

(官网似乎已改版&#xff0c;此代码没用了) 1、pom文件配置或者添加jsoup1.6.3jar包&#xff1a; <dependencies><dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.6.3</version></depe…

Java之利用FreeMarker引擎实现枚举和脚本自动生成

开心一笑 【天气热了 翻箱倒柜找了半天短袖 结果找出来一看 全是些名牌短袖 感觉穿出去太高调了 比如什么中国电信啊 天翼4G啊 太太乐鸡精啊 莲花味精啊 海天酱油啊。。最珍贵的一件 要属那件史丹利复合肥 跟刘能同款 哎头大了纠结该穿哪个好呢&#xff1f;穿出去不会被人说我…

32 《奇特的一生》 -豆瓣评分8.5

与您一起终身学习 border"0" width"330" height"86" src"//music.163.com/outchain/player?type3&id907513841&auto0&height66"> 奇特的一生 【 从认真记录每一分钟被用在了哪里开始&#xff0c;拥有高效而有意义的一…