位置: IT常识 - 正文

【uni-app】小程序实现微信授权登陆(附流程图)(unigui 小程序)

编辑:rootadmin
【uni-app】小程序实现微信授权登陆(附流程图)

微信授权登陆是比较常见的一种登陆方式,今天来总结下实现流程

进入授权登陆页面

初始化调用wx.login获取登陆凭证code(用户无感知)//封装微信获取用户code,避免嵌套login() { return new Promise((resolve, reject) => { uni.login({ success(res) { resolve(res); }, fail(err) { reject(err); } }); });}

推荐整理分享【uni-app】小程序实现微信授权登陆(附流程图)(unigui 小程序),希望有所帮助,仅作参考,欢迎阅读内容。

【uni-app】小程序实现微信授权登陆(附流程图)(unigui 小程序)

文章相关热门搜索词:uni-app小程序授权登录,uni-app 微信小程序,小程序uniacid,uni-app 小程序,uni-app 小程序,uni-app 小程序,uni-t小程序,uni-t小程序,内容如对您有帮助,希望把文章链接给更多的朋友!

用登陆凭证code调用后端接口去获取用户登录态信息,包括用户在当前小程序的唯一标识(openid)、微信开放平台帐号下的唯一标识(unionid,若当前小程序已绑定到微信开放平台帐号)及本次登录的会话密钥(session_key)等(用户无感知)

async init() { //调用微信登陆 let res = await this.login() if (res.code && ['login:ok'].includes(res.errMsg)) { //后端通过code调用微信API返回openid/unionid/session_key参数, 存储起来,前端无法直接调用微信相关API let openIdRes = await getWechatOpenIdByCode({ code: res.code }) if (openIdRes.success) { let { openId, sessionKey } = openIdRes this.openId = openId this.sessionKey = sessionKey } } else { //异常处理,再次发起请求或者抛出异常 // ..... }}, 用户点击微信手机号快捷登录按钮,触发授权弹窗(需用户主动触发,不允许api主动调用),详细使用看官方文档

用户允许授权会触发getphoneNumber小程序事件获取到encryptedData, iv参数//微信授权登陆按钮<u-button open-type="getPhoneNumber" @getphonenumber="getphoneNumber">用户授权登陆</u-button>//JS部分//用户授权登陆允许后,返回encryptedData, iv参数getPhoneNumber(e) { //拿到参数后进一步去解密.... // 授权通过后轮询等待获取sessionKey响应成功 if (['getPhoneNumber:ok'].includes(e?.detail?.errMsg)) { this.handlePolling(e) }}/*** 轮询查询是否有sessionKey,防止初始化接口响应时间过长拿不到解密入参,用户解密失败*/handlePolling(e) { this.timer = setInterval(() => { if (this.sessionKey) { this.decryptDataInfo(e.detail) this.timer = null } }, 300)},调用后端解密接口,解密拿到用户的手机信息(手机号、区号、国家等)调用后端登陆接口,传入openId、用户手机号,返回登陆token完成登陆/** * 解密获取手机号码,区号 */async decryptDataInfo(detail:any) { let params = { encryptedData: detail.encryptedData, sessionKey: this.sessionKey, iv: detail.iv, appId: getLocalStorage(AppIdKey), } let res = await decryptApi(params) if (res.success) { //解密成功,获取到手机号码,区号等信息 let data = JSON.parse(res.data) // 调用后端登陆接口传入信息,完成登陆 this.loginMinor(data) } else { //....异常处理 }}

有些朋友可能觉得写的不够清晰,重新补充了个流程图

本文链接地址:https://www.jiuchutong.com/zhishi/294589.html 转载请保留说明!

上一篇:Vision Transformer 模型详解

下一篇:赫尔辛基的哈加杜鹃花公园,芬兰 (© Samuli Vainionpää/Getty Images)(赫尔辛基哈加赫利亚大学)

  • 美团无人接单怎么赔付(美团无人接单怎么取消订单)

    美团无人接单怎么赔付(美团无人接单怎么取消订单)

  • 快手c类警告pk受限(快手警告了就不能pk了怎么办)

    快手c类警告pk受限(快手警告了就不能pk了怎么办)

  • 华为充电头保护膜用不用撕掉(华为充电头保护套)

    华为充电头保护膜用不用撕掉(华为充电头保护套)

  • 钉钉开摄像头分屏会被发现吗(钉钉开摄像头分屏老师能看见吗)

    钉钉开摄像头分屏会被发现吗(钉钉开摄像头分屏老师能看见吗)

  • 拼多多为什么不显示步数(拼多多为什么不用密码能直接付款)

    拼多多为什么不显示步数(拼多多为什么不用密码能直接付款)

  • qq点赞前面的小图标是什么(qq点赞前面的小图标是什么闪电是什么意思)

    qq点赞前面的小图标是什么(qq点赞前面的小图标是什么闪电是什么意思)

  • 结束运行有什么影响吗(结束运行有什么影响吗微信)

    结束运行有什么影响吗(结束运行有什么影响吗微信)

  • 爱思修改定位会被检测吗(爱思修改定位会泄露吗)

    爱思修改定位会被检测吗(爱思修改定位会泄露吗)

  • watch无法检查更新(apple watch无法检查更新)

    watch无法检查更新(apple watch无法检查更新)

  • 小米mix2支持5a快充吗(小米mix2可以用5a快充吗)

    小米mix2支持5a快充吗(小米mix2可以用5a快充吗)

  • 硬盘格式化是什么意思(硬盘格式化什么格式才能兼容苹果电脑)

    硬盘格式化是什么意思(硬盘格式化什么格式才能兼容苹果电脑)

  • 苹果x啥处理器(苹果 iphone x什么处理器)

    苹果x啥处理器(苹果 iphone x什么处理器)

  • 苹果播客删除有影响吗(苹果播客删了怎么重新下不了)

    苹果播客删除有影响吗(苹果播客删了怎么重新下不了)

  • 笔记本花屏是什么原因(笔记本花屏什么意思)

    笔记本花屏是什么原因(笔记本花屏什么意思)

  • 京东怎么延时收货(京东怎么设置延长收货)

    京东怎么延时收货(京东怎么设置延长收货)

  • 两微一端是指什么(两微一端是什么)

    两微一端是指什么(两微一端是什么)

  • 如何查看苹果扣费项目(如何查看苹果扣费订阅)

    如何查看苹果扣费项目(如何查看苹果扣费订阅)

  • p30微信视频怎么美颜(p30微信视频声音小怎么解决)

    p30微信视频怎么美颜(p30微信视频声音小怎么解决)

  • 联想管理员密码是多少(联想管理员密码忘记了怎么办)

    联想管理员密码是多少(联想管理员密码忘记了怎么办)

  • vivo如何查询有碎屏险(怎样查看vivo)

    vivo如何查询有碎屏险(怎样查看vivo)

  • handoff在哪里(handoft)

    handoff在哪里(handoft)

  • 三星a60电池显示百分比(三星a80电量显示)

    三星a60电池显示百分比(三星a80电量显示)

  • 自动换行在哪(office365自动换行在哪)

    自动换行在哪(office365自动换行在哪)

  • python基于融合SPD-Conv改进yolov5与原生yolov5模型实践路面裂痕裂缝检测(python结合)

    python基于融合SPD-Conv改进yolov5与原生yolov5模型实践路面裂痕裂缝检测(python结合)

  • 消防维保技术服务承诺书
  • 应交地方教育费附加税率是多少
  • 中小型企业营业额和从业人数
  • 二手车交啥税
  • 结转完工入库产品成本计算
  • 运输服务有3%的税率吗
  • 企业所得税表中营业成本包括费用吗
  • 契税和印花税的计税依据是一致吗
  • 当月未认证发票分录
  • 个税手续费退还时间
  • 服务费返还
  • 企业所得税清算是什么意思
  • 税率13降到11的财税政策解读
  • 征收开票信息
  • 营改增后营业外收入交增值税吗?
  • 企业出租收入增值税税率
  • 没收到发票可以勾选认证吗
  • 广告业公司成立时的资金如何记账?
  • 进项发票没认证可以开红字申请单吗
  • linux docx
  • 政府性基金收入来源
  • php数组函数实现机选双色球
  • php 魔术
  • php的运算符主要包括哪些?
  • 闲置私家车出租APP
  • 免税企业所得税的有
  • 移动端h5页面适配
  • 任意盈余公积金的用途
  • 海关进口增值税如何入账
  • php+mysql+jquery实现简易的检索自动补全提示功能
  • axure rp9视频教程
  • php生成guid
  • 办公室装修款怎么做账
  • 工资可以当月计提当月发放怎么做账
  • 企业接受捐赠怎么入账
  • MySQL中Distinct和Group By语句的基本使用教程
  • 进项税额转出更正申报
  • 跨季度的发票可以冲红吗
  • 电子缴款凭证在哪里找
  • sqlserver2008安装闪退
  • 采购原材料未入库
  • 2021年废铁回收
  • 固定资产后续支出
  • 小规模纳税人利润表季报
  • 资产负债表可以反映的具体信息有
  • 待报解啥意思
  • 购入车辆发生的费用
  • 材料暂估入库的账务处理
  • 医院药品进销差价会计核算
  • 来料加工的增值税怎么核算
  • 盈利能力分析对企业发展的意义
  • 砂石资源税怎么算
  • 完工不拨付工程款怎么处理
  • 招标代理服务费应该由谁支付
  • 生物性资产是什么科目
  • 规划设计费收费依据
  • 内部无形资产交什么税
  • 成本暂估入帐如何做分录
  • 年末是否要结转所得税
  • 商业企业发出商品的核算方法
  • 系统存储过程以什么开头
  • centos7安装MySQL5.6
  • 笔记本上安装软件怎么弄
  • window10重装显卡驱动
  • windows中alt+tab
  • win11注意
  • 程序中map是什么意思
  • windows下打开注册表的命令是什么
  • linux 怎么样
  • react-native-navigation
  • css教程推荐
  • perl删除文件夹
  • unityz
  • js-cookie vue
  • unity2d摇杆
  • python selectfrommodel
  • python作用域和命名空间
  • 土地增值税清算时间要求
  • 税务局发票邮寄需要多久
  • 越南进口废塑料新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设