最近在做一个项目兼容app和小程序
这里写一下这里面微信登陆的流程

  • 这里有授权获取手机号弹窗 需用户手动点击按钮确认授权才行
<!-- 授权获取手机号弹窗  需用户手动点击按钮确认授权才行-->
<u-modal v-model="showSQ" title=" " :show-confirm-button='false'><button style="background-color:#23C9A5;width: 500rpx;height: 80rpx;color: #FFFFFF;margin: 100rpx auto 150rpx;"open-type="getPhoneNumber" @getphonenumber="getPhoneNumber">确认授权获取手机号码</button>
</u-modal>
  • 微信图标 点击微信图标触发goWX方法

<!-- 微信图标 点击微信图标触发goWX方法-->
<view style="display: flex;justify-content: center;"><image @click="goWX()" src="../../static/icon_wx.png" mode="aspectFill" style="width: 70rpx;height: 70rpx;margin: 0 auto;"></image>
</view>

1. 点击goWx 判断当前环境是app还是微信

goWX() {// #ifdef APP-PLUSthis.wx()// #endif// #ifndef APP-PLUSthis.authorization()// #endif
},

2. app授权拿到openid --登陆

// app获取微信授权
wx() {uni.login({provider: 'weixin',success: (loginRes) => {console.log('loginRes', loginRes)let openId = loginRes.authResult.openidthis.wxLogin(openId)}});
},

3. 小程序 授权 --手机号授权–走后端接口获取openid–登陆

// 小程序授权接口authorization(){wx.getUserProfile({desc:'授权登录',success:(info)=>{console.log('获取用户信息成功',info);uni.login({provider: 'weixin',success: (loginRes) => {this.wxcode = loginRes.codethis.showSQ = true// wx.getSetting({//   success(res) {//        console.log(res)//      return//        console.log('getPhoneNumbergetPhoneNumber', res.authSetting['scope.getPhoneNumber'])//      if (!res.authSetting['scope.getPhoneNumber']) {    //没有授权过手机号//           that.showSQ = true//       } else {//          //授权过手机号直接调用登陆接口//      }//     }// })}});},fail:(info)=> {// 获取失败的去引导用户授权uni.showToast({icon: 'none',title: '您需要授权,才能获取您的信息!'});}})},getPhoneNumber(e) {if (e.detail.errMsg == 'getPhoneNumber:ok') {wx.login({provider: 'weixin',success: (loginRes) => {this.wxcode = loginRes.codeconsole.log('loginRes',loginRes)let data = {code: this.wxcode,iv: e.detail.iv,encryptedData: e.detail.encryptedData}console.log('a',data)this.getOpenid(data)}})}},// 未注册 uni.login  getOpenid(data) {this.$u.api.wxxcxRegister(data).then(res => {console.log('wxxcxRegister',res)if (res.code == 200) {console.log('res.result.openid',res.result.openid)this.wxLogin(res.result.openId)} else {this.$u.toast(res.message)}})},

4. 登陆

         wxLogin(openId){this.$u.api.wxCustomerLogin({openId}).then(res => {console.log(res)if (res.code == -101) {this.$u.toast(res.code.message)setTimeout(() => {uni.navigateTo({url: 'binding?openId=' + openId})}, 1000)} else if (res.code == 200) {this.$u.toast('登录成功!')uni.setStorageSync('doorToDoor_id', res.result.id)setTimeout(() => {uni.switchTab({url: '../index/index'})}, 1500)} else {this.$u.toast(res.message)}})},

app微信登陆 小程序微信授权登陆相关推荐

  1. 如何使用计算机微信看小程序,微信电脑版怎么用小程序 在哪里打开

    现在有用户在玩微信中的小程序,不过在电脑端中部分用户却打不开小程序,那么到底是什么原因导致的呢?应该如何打开PC端中的微信小程序?先就通过这篇文章给大家介绍一下. 类别:聊天工具   大小:107.6 ...

  2. 如何实现自有App上的小程序第三方微信授权登陆?

    对于微信小程序来说,有 OpenID 或 UnionID 作为唯一标识,微信授权登陆小程序账号是很容易实现的,但对于其他应用上的小程序来说(如支付宝.百度等),打通该登陆方式是比较麻烦的. 之前在Fi ...

  3. 小程序加入人脸识别_微信小程序 人脸识别登陆模块

    微信小程序---人脸识别登陆的实现 关键词:微信小程序 人脸识别 百度云接口 前言 这是一篇关于一个原创微信小程序开发过程的原创文章.涉及到的核心技术是微信小程序开发方法和百度云人脸识别接口.小程序的 ...

  4. 后台模拟页面登陆_微信直播小程序后台,微信朋友圈可直达小程序直播了

    独家了解到,微信广告正在测试直播模式,可以帮助商家将直播小程序置于多个广告流量级别,如朋友圈,公众账号和小程序. 这也意味着微信生态系统中的商家不仅可以通过小节目现场直播来运营私有域流量,而且可以利用 ...

  5. 微信小程序Android和ios授权,uni-app之APP和小程序微信授权方法

    uni-app 介绍 uni-app 是一个使用 Vue.js 开发跨平台应用的前端框架. 适用平台:Android.iOS.微信小程序.实现了一套代码,同时发布到Android.iOS.微信小程序. ...

  6. 微信读书登陆界面java_(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好...

    转载地址:(JAVA后端)微信小程序-毕设级项目搭建-微信阅读小程序(内含源码,微信小程序+java逻辑后台+vue管理系统)~不求完美,实现就好 转载请注明出处 一.环境搭建 相关环境软件:JDK1 ...

  7. 微信开放平台开发第三方授权登陆(三):Android客户端

    微信开放平台开发系列文章: 微信开放平台开发第三方授权登陆(一):开发前期准备 微信开放平台开发第三方授权登陆(二):PC网页端 微信开放平台开发第三方授权登陆(三):Android客户端 微信开放平 ...

  8. 微信开放平台开发第三方授权登陆(二):PC网页端

    微信开放平台开发系列文章: 微信开放平台开发第三方授权登陆(一):开发前期准备 微信开放平台开发第三方授权登陆(二):PC网页端 微信开放平台开发第三方授权登陆(三):Android客户端 微信开放平 ...

  9. 2023微信社区小程序+APP+后台,附带超详细完整搭建教程【源码+教程】

    2023微信社区小程序+APP+后台,附带超详细完整搭建教程[源码+教程] 微信授权登陆正常,小程序和APP带后台 手机号登陆正常,发帖,建圈子.发活动. 微信小程序是一种轻量级的应用程序,可以在微信 ...

最新文章

  1. Redis整合Spring结合使用缓存实例
  2. 对联系人进行增删改查
  3. ThinkPHP 5.0.x、5.1.x、5.2.x 全版本远程命令执行漏洞
  4. 大型JavaScript应用程序架构模式
  5. 十大经典排序算法(上)
  6. 跨境电商和独立站哪个好?
  7. python程序员面试题精选100题_在Python程序员面试中被问的最多的10道题
  8. javascript 和 jsp (java server page)的区别
  9. 路径太深 无法删除文件夹 之解决办法
  10. stm32F103 模拟I2C mpu6050收到数据全为0,或者地址为209,104,0x68,0xD0的一些解决办法总结
  11. SpringBoot RabbitMQ 异步激活_注册邮箱
  12. A链接标签点击不会触发任何行为的写法
  13. SQL ifnull、nullif 等函数
  14. svg去掉黑色自带背景图
  15. 华为HG255d二级级联路由时上下级互访解决
  16. 图纸上标注的是实际尺寸吗_CAD或工程图上与实际尺寸比例公式有?
  17. 1688以图搜货接口,1688图片搜索接口,拍立淘接口,以图搜商品接口,图片上传搜索商品接口,按图搜索接口代码对接参数说明
  18. 如何通过自学,成为数据挖掘“高手”
  19. ACM基础题 | 相遇周期_HDU-1713(Java实现)
  20. 《泰囧》的票房是如何成功运营的

热门文章

  1. PS之人物磨皮与特效(适用于商业海报)
  2. Java web网站访问量的计数
  3. Windows如何远程连接服务器?Linux服务器如何远程登录?远程连接服务器命令
  4. 数据结构(C语言版)之栈及递归
  5. Springboot 工具类@Value取不到值
  6. [OpenGL] 使用Assimp库的骨骼动画
  7. JACK——TeamsMaual6 Team Formation
  8. WPF MVVM架构 程序退出右下角托盘图标简单解决方案
  9. 【转】ubuntu下为APT设置代理
  10. 基于python的个人博客系统的设计开题报告_基于JavaSSM框架的个人博客系统设计与实现开题报告...