uniapp—微信登录,苹果登录
目录
微信登录代码实现
在微信小程序和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—微信登录,苹果登录相关推荐
- uni-app微信小程序登录授权
uni-app微信小程序登录授权 首先是需要用到一个授权按钮来触发获取用户信息授权: 关键在于 open-type 为 getUserInfo , 然后有个@getuserinfo的事件,把获取授权接 ...
- uniapp 微信小程序登录方法封装
uniapp 微信小程序登录方法封装 前言 一.登录接口 二.登录 上代码 总结 前言 ui设计没有登录页所以将微信小程序登录方法同一封装一个方法 一.登录接口 uni.getUserProfile ...
- uni-app微信小程序登录;uni-app微信登录小程序;uni-app微信登录app;
思路: 通过uni-app文档可知:实现微信登录,无论是app还是小程序,都需要唯一标识openid,然后通过openid取掉后端的登录接口,获取cookie然后做登录跳转: [-[-[必须先调用微信 ...
- uni-app 微信小程序 登录/注册功能
用户分为两类:没有注册的用户,已经注册的用户 如何检测?首先需要触发用户点击,这里使用button按钮 user.vue <button @click="getuserinfo()&q ...
- uniapp 微信小程序登录
先配置uniapp的小程序应用ID跟密钥 然后看代码,登录页面: <template><!-- login view html start --><view>< ...
- uni-app微信公众号登录
获取url参数的方法:这个方法url必须是带着#/的 let pages = getCurrentPages()let len = pages.lengthlet curParam = pages[l ...
- uniapp微信公众号登录
项目中新建common文件夹,新建文件login.js function getUrlCode() {// 截取url中的code方法var url = location.search;var the ...
- uni-app 苹果登录
iOS13+ 系统开始支持苹果登录,需要在登录界面进行判断,是否ios,如果是,需要添加苹果登录 苹果登录示例 uni.login({provider: 'apple',success: funct ...
- ios 登录 java 后台,IOS苹果登录sign in with apple后端校验
IOS苹果登录sign in with apple后端校验 最近新开发的app在IOS平台app store connent提审的时候,被拒了,原因是app上如果有接第三方登陆(比如微信,微博,fac ...
最新文章
- UICollectionView之网络图片解析
- 那些按烂的Linux命令集合贴
- mysql多大_mysql的innodb表到底占用多大的空间?
- Spring 源码分析(四) ——MVC(一)Web 基础
- python -- 青少年如何使用 Python 开始游戏开发
- Squid在企业中的应用
- Windows系统下nodejs安装及配置
- Spring4中的@Value的使用(学习笔记)
- 命中率_数据说话!詹姆斯的“皇家射手团”命中率为近十年最低
- webapi返回字符串,解决自动加双引号或下划线的问题
- ibm v3700添加硬盘_机 · 科普帖丨从大到小又从小到大,硬盘这些年是怎么过来的...
- 【selenium学习笔记一】python + selenium定位页面元素的办法。
- excel实用技巧——vlookup函数
- 【NOIP2015】【Luogu2615】神奇的幻方(模拟填数)
- ubuntu 14.04 将用户目录下中文目录修改为英文目录
- 如何设置eclipse眼睛保护色-码农必备
- 倍福PLC_添加CX2500-0060以太网模块后无法从TwinCAT软件扫描到问题
- Keil4 基础使用
- 《把时间当做朋友》读书摘记
- 资产监测设备中法国配置工具介绍(二)