目录

微信登录代码实现

在微信小程序和app登录,获取的unionid不一致

ios13+苹果登录

在苹果登录的开发过程中,遇到的问题及解决方案。


需求说明:

我的项目需求是已有微信小程序项目,新增app项目,需要将微信小程序的用户和app端的用户相关联。

实现方法:在微信开放平台,在同一账户下分别创建移动应用和微信小程序。

实现原理:同一微信登录的微信小程序和app,用户对应的unionid是一致的。

微信登录代码实现如下:

可查看uniapp官方文档的登录api,有详细的参数说明。

// 微信登录
wechatLogin(){var that=thisuni.getProvider({service: 'oauth',success: function(res) {console.log(res.provider);//支持微信、qq和微博等if (~res.provider.indexOf('weixin')) {uni.login({provider: 'weixin',success: function (loginRes) {console.log("App微信获取用户信息成功",loginRes);//调用后端接口做登陆操作that.wechatLoginFun(loginRes.authResult)},fail:function(loginRes){console.log("App微信获取用户信息失败",res);//调用后端接口做登陆操作that.wechatLoginFun(loginRes)}})}}});
}

遇到的问题:分别在微信小程序和app登录,获取的unionid不一致。

查找资料得知导致unionid不一致的原因有:

1>移动应用与微信小程序不在同一主体下

2>移动应用与微信小程序不在同一开放平台账号下

大家可以优先自己检查下这两点。

排除以上两点,在微信公众平台社区发帖求助,得到的官方回应如下:

查阅文档发现想要获取正确的unionid需要使用自定义基座。

所以官方回答不是同一账户的原因是,我运行打包的时候,使用的是uniapp的默认基座,默认基座uniapp有配置一个appid用于测试使用,而这个appid对应的账号与我的账号是两个账号,默认基座的appid就是官方提到的wx4f7b78f5611e78e9.

配置自定义基座可参考另一篇博客,有详细介绍。

使用自定义基座后,可以正确的获得unionid,微信小程序和app的用户成功关联。

ios13+苹果登录

到这儿,登录功能还没完全完成,官方文档有明确指出,苹果在ios13+新增苹果登录功能,如果app登录有使用第三方登录(微信登录等),必须同时有苹果登录,否则app提审很可能会被拒绝。详情可查看:苹果登录

苹果登录代码如下:需要在苹果开发平台创建应用的时候,选择apple  sign。

//判断是apple 13+
onLoad(){let that = thisuni.getSystemInfo({success: function (res) {that.system = Number(res.system.substring(0,2))that.platform = res.platformif(that.platform == 'ios' && that.system < 13){//不支持苹果登录}else if(that.platform == 'ios' && that.system >= 13){//调用苹果登录that.appleLogin()}}});
},
methods:{//苹果登录appleLogin(){uni.login({  provider: 'apple',  success: function (loginRes) {  // 登录成功  uni.getUserInfo({  provider: 'apple',  success(res) {  // 获取用户信息成功  console.log(res)/*返回的数据{"errMsg": "getUserInfo:ok","rawData": "json字符串","userInfo": {"openId": "xxx.xxxxx.xxx", // 苹果用户唯一标识符,该值在同一个开发者账号下的所有 App 下是一样的,开发者可以用该唯一标识符与自己后台系统的账号体系绑定起来。"fullName": {}, // 当且仅当第一次授权才会返回"authorizationCode": "12345678xxx", // 服务器验证需要使用的参数"identityToken": "header.payload.signature", // 服务器验证需要使用的参数"realUserStatus": 1 // 用于判断当前登录的苹果账号是否是一个真实用户},"signature": ""}*/if(res.userInfo.openId != undefined){uni.showToast({title:'登录成功',icon:'none'})}}  })  },  fail: function (err) {  console.log(err)}  });  },
}

在苹果登录的开发过程中,我遇到了一下问题,经过不断地查阅资料,得到了有效的解决方案。

问题1:IOS开发者证书信息有误,请重新填写相关信息 IOS profile文件与私钥证书文件不匹配。

原因:在mac上生成.p12证书错误

解决方案:

第二条很关键,我就是第二条错了。

问题2:运行到手机端的时候,提示“安装失败 return code=-402620395 ,手动安装提示校验失败”

原因:

1>查看官方说明code=-402620395官方说明

2>调试的手机没有被添加到苹果开发账号的设备里

解决方案:在苹果开发平台添加该设备。详细操作可参考基座配置博客。

问题3:运行到苹果手机,页面出现We'are sorry ... Back Close选择项

原因:mainfest.json里面模块权限没加

解决方案:注意配置完mainfest.json需要重新上传云打包,进行打包,否则不生效。

到这儿,uniapp实现app端的微信登录功能就实现啦。博客不断更新中~
要努力学习上进的芋头呀!!

uniapp—微信登录,苹果登录相关推荐

  1. uni-app微信小程序登录授权

    uni-app微信小程序登录授权 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接 ...

  2. uniapp 微信小程序登录方法封装

    uniapp 微信小程序登录方法封装 前言 一.登录接口 二.登录 上代码 总结 前言 ui设计没有登录页所以将微信小程序登录方法同一封装一个方法 一.登录接口 uni.getUserProfile ...

  3. uni-app微信小程序登录;uni-app微信登录小程序;uni-app微信登录app;

    思路: 通过uni-app文档可知:实现微信登录,无论是app还是小程序,都需要唯一标识openid,然后通过openid取掉后端的登录接口,获取cookie然后做登录跳转: [-[-[必须先调用微信 ...

  4. uni-app 微信小程序 登录/注册功能

    用户分为两类:没有注册的用户,已经注册的用户 如何检测?首先需要触发用户点击,这里使用button按钮 user.vue <button @click="getuserinfo()&q ...

  5. uniapp 微信小程序登录

    先配置uniapp的小程序应用ID跟密钥 然后看代码,登录页面: <template><!-- login view html start --><view>< ...

  6. uni-app微信公众号登录

    获取url参数的方法:这个方法url必须是带着#/的 let pages = getCurrentPages()let len = pages.lengthlet curParam = pages[l ...

  7. uniapp微信公众号登录

    项目中新建common文件夹,新建文件login.js function getUrlCode() {// 截取url中的code方法var url = location.search;var the ...

  8. uni-app 苹果登录

     iOS13+ 系统开始支持苹果登录,需要在登录界面进行判断,是否ios,如果是,需要添加苹果登录 苹果登录示例 uni.login({provider: 'apple',success: funct ...

  9. ios 登录 java 后台,IOS苹果登录sign in with apple后端校验

    IOS苹果登录sign in with apple后端校验 最近新开发的app在IOS平台app store connent提审的时候,被拒了,原因是app上如果有接第三方登陆(比如微信,微博,fac ...

最新文章

  1. UICollectionView之网络图片解析
  2. 那些按烂的Linux命令集合贴
  3. mysql多大_mysql的innodb表到底占用多大的空间?
  4. Spring 源码分析(四) ——MVC(一)Web 基础
  5. python -- 青少年如何使用 Python 开始游戏开发
  6. Squid在企业中的应用
  7. Windows系统下nodejs安装及配置
  8. Spring4中的@Value的使用(学习笔记)
  9. 命中率_数据说话!詹姆斯的“皇家射手团”命中率为近十年最低
  10. webapi返回字符串,解决自动加双引号或下划线的问题
  11. ibm v3700添加硬盘_机 · 科普帖丨从大到小又从小到大,硬盘这些年是怎么过来的...
  12. 【selenium学习笔记一】python + selenium定位页面元素的办法。
  13. excel实用技巧——vlookup函数
  14. 【NOIP2015】【Luogu2615】神奇的幻方(模拟填数)
  15. ubuntu 14.04 将用户目录下中文目录修改为英文目录
  16. 如何设置eclipse眼睛保护色-码农必备
  17. 倍福PLC_添加CX2500-0060以太网模块后无法从TwinCAT软件扫描到问题
  18. Keil4 基础使用
  19. 《把时间当做朋友》读书摘记
  20. 资产监测设备中法国配置工具介绍(二)

热门文章

  1. 基于虚拟仪器的电磁阀综合特性系统设计
  2. 虚拟机CentOS7磁盘分区表故障 无法启动
  3. 仿生学: 尺度和坐标轴
  4. Windows快捷键笔记
  5. java.awt包_java.awt包 简介
  6. java判断联通手机号码_怎样判断手机号码是移动的还是联通的?
  7. Java后端开发工程师技术栈整理
  8. php 许愿墙 阶段案例_许愿墙代码
  9. ADV-166 聪明的美食家
  10. android发送数据短信,如何发送和接收数据短信