位置: 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)(赫尔辛基哈加赫利亚大学)

  • iphone13pro和12pro外观一样吗(iphone13pro和12pro重量)

    iphone13pro和12pro外观一样吗(iphone13pro和12pro重量)

  • windows是什么意思(windows是什么意思电脑)

    windows是什么意思(windows是什么意思电脑)

  • 华为p30pro网速慢如何解决(华为p30p网速太慢怎么回事)

    华为p30pro网速慢如何解决(华为p30p网速太慢怎么回事)

  • 微信多久不用会被冻结(微信多久不用会被限制登录)

    微信多久不用会被冻结(微信多久不用会被限制登录)

  • 快手小黄车提现手续费(快手小黄车提现流程)

    快手小黄车提现手续费(快手小黄车提现流程)

  • 华为手机上的gps在哪个设置里面打开(华为手机上的gps怎么打开)

    华为手机上的gps在哪个设置里面打开(华为手机上的gps怎么打开)

  • 腾讯会议共享视频没有声音(腾讯会议共享视频卡顿)

    腾讯会议共享视频没有声音(腾讯会议共享视频卡顿)

  • 图片降噪越高越清晰吗(图片的降噪程度是什么意思)

    图片降噪越高越清晰吗(图片的降噪程度是什么意思)

  • 抖音的收货地址在哪里修改(怎样删除抖音的收货地址)

    抖音的收货地址在哪里修改(怎样删除抖音的收货地址)

  • 苹果id账户详情不可用是怎么回事(苹果id账户详情不可用怎么回事儿)

    苹果id账户详情不可用是怎么回事(苹果id账户详情不可用怎么回事儿)

  • 三星note10有红外线功能吗(三星note10红外遥控器)

    三星note10有红外线功能吗(三星note10红外遥控器)

  • 得实打印机不进纸原因(得实打印机不进纸1870)

    得实打印机不进纸原因(得实打印机不进纸1870)

  • icloud云备份云盘区别(icloud icloud云备份 icloud云盘)

    icloud云备份云盘区别(icloud icloud云备份 icloud云盘)

  • oppok5支持视频美颜吗(oppok5有视频美颜吗)

    oppok5支持视频美颜吗(oppok5有视频美颜吗)

  • 手机用的时间长了反应很慢怎么办(手机用的时间长了卡顿怎么办)

    手机用的时间长了反应很慢怎么办(手机用的时间长了卡顿怎么办)

  • 手机qq讨论组怎么创建(手机qq讨论组怎么转让群主)

    手机qq讨论组怎么创建(手机qq讨论组怎么转让群主)

  • 华为nova6pro啥时候出(华为nova6pro是什么时候上市的,价格多少?)

    华为nova6pro啥时候出(华为nova6pro是什么时候上市的,价格多少?)

  • 小米拦截电话在哪里设置(小米拦截电话在哪里取消设置)

    小米拦截电话在哪里设置(小米拦截电话在哪里取消设置)

  • 怎么把电话设置成关机(怎么把电话设置成正在通话中)

    怎么把电话设置成关机(怎么把电话设置成正在通话中)

  • 4k分辨率是多少像素(2k分辨率是多少)

    4k分辨率是多少像素(2k分辨率是多少)

  • oppor17支持多少w闪充(oppor17支持多少W快充吗)

    oppor17支持多少w闪充(oppor17支持多少W快充吗)

  • 钉钉认证被拒绝原因有哪些(钉钉认证失败是什么原因)

    钉钉认证被拒绝原因有哪些(钉钉认证失败是什么原因)

  • 荣耀20有红外线和nfc吗(荣耀20有红外线遥控吗)

    荣耀20有红外线和nfc吗(荣耀20有红外线遥控吗)

  • 苹果降级包从哪下载(iphone.降级)

    苹果降级包从哪下载(iphone.降级)

  • oppo如何分屏(oppo如何分屏玩光遇)

    oppo如何分屏(oppo如何分屏玩光遇)

  • 宽带调制解调器出现连接问题解决方法(宽带调制解调器出现问题怎么解决)

    宽带调制解调器出现连接问题解决方法(宽带调制解调器出现问题怎么解决)

  • 可以税前扣除的利息费用有哪些
  • 残保金为啥经过个人账户
  • 账面价值与计税基础之间没有差别只是计价的两种名称
  • 财务报表是什么意思
  • 为什么征收增值税体现了量益原则
  • 软件开发里面的人天
  • 索赔费用项目
  • 借款利息支出全部可以税前扣除吗
  • 已计提的固定资产减值准备累计金额
  • 已抵扣的进项税额红冲的账怎么做
  • 企业用流动资金怎么做账
  • 贴现票据种类
  • 企业只有收入没有支出是否违规
  • 开票为单位 收款为个人
  • 小规模纳税人的税率是多少
  • 开具增值税专用发票怎么开
  • 其他收益是否缴纳个税
  • 货代企业所得税优惠政策
  • 固定资产处理怎么入账
  • 股东收回投资要交税吗
  • 电子承兑怎么开户
  • 调减管理费用如何调整本年利润
  • 银行收取年费是什么意思
  • 两年利润都为负数,如何计算完成率
  • 法院判决书能作为证据使用吗
  • 卖房的税种
  • 出口布料有退税吗
  • 个人垫付汽车修理怎么办
  • 原材料入库如何分类
  • 一般纳税人附加税费减免政策
  • windows10如何开机启动软件
  • 如何修改win10系统电脑密码
  • 公司购买货物
  • pavsrv50.exe - pavsrv50进程管理信息
  • unbutun系统
  • php自动载入自定义函数文件
  • ajax不刷新页面
  • 个人个税汇算清缴怎么做
  • 客户要发票加收怎么办
  • php上传大视频
  • 长期待摊费用是非流动资产吗
  • 企业不交所得税的情况
  • 党组织工作经费税前扣除
  • 个税汇算清缴什么意思?
  • 运输业开发票
  • 工程收到款项会计分录
  • 暂估成本发票最晚什么时候补齐
  • 财务软件怎样和银行对账
  • 包材库存
  • 投标保证金会计科目
  • 前程无忧是怎么收费的
  • 诉讼费用负担原则是什么
  • 购买农产品进行销售要交税吗
  • 固定资产后期可以折旧吗
  • 代扣的应由职工个人负担的社会保险费计入什么科目
  • 地方教育附加申报
  • 年末结账与财务的关系
  • 深入理解中国式现代化论文
  • mysql和mysql数据库的区别
  • 在sql查询中使用where子句指定的是
  • windows启动失败是怎么回事
  • putty ssh tunnel
  • Windows Server 2012实用技巧集锦
  • linux里vim常用命令
  • 没有触屏如何使手机充电
  • linux如何修改gid
  • opengl的函数
  • 安卓textview设置文本
  • 安卓作业仿银行
  • node.js使用mysql
  • unity游戏换皮教程
  • javascript中的对象用于
  • jquery的gt
  • unity中sendmessage
  • 网页js调试
  • jquery foreach循环
  • 小规模纳税人收到增值税专用发票怎么办
  • 销售有机肥需要什么手续
  • 11%税率的范围
  • 销售不动产增值税税率
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设