十月1013
十月1013
  • 发布:2023-04-13 14:40
  • 更新:2023-08-17 08:42
  • 阅读:312

【报Bug】一键登录报错30004

分类:uni-app

产品分类: uniapp/App

PC开发环境操作系统: Windows

PC开发环境操作系统版本号: 1809

HBuilderX类型: 正式

HBuilderX版本号: 3.7.9

手机系统: Android

手机系统版本号: Android 12

手机厂商: 华为

手机机型: LE2100

页面类型: vue

vue版本: vue2

打包方式: 云端

项目创建方式: HBuilderX

操作步骤:

···
loginPhone() {
let that = this
uni.preLogin({
provider: 'univerify',
success(res) { //预登录成功
// 显示一键登录选项
console.log(res);
console.log('999', 2222);
console.log('预登录成功');
uni.login({
provider: 'univerify',
univerifyStyle: { // 自定义登录框样式
//参考univerifyStyle 数据结构
"fullScreen": false, // 是否全屏显示,默认值: false
"title": '快速登录',
"backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff
"icon": {
"path": "static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"phoneNum": {
"color": "#000000", // 手机号文字颜色 默认值:#000000
"fontSize": "18" // 手机号字体大小 默认值:18
},
"slogan": {
"color": "#8a8b90", // slogan 字体颜色 默认值:#8a8b90
"fontSize": "12" // slogan 字体大小 默认值:12
},
// 一键登录
"authButton": {
"normalColor": "#FF3A3A", // 授权按钮正常状态背景颜色 默认值:#3479f5
"highlightColor": "#FF3A3A", // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)
"disabledColor": "#FF5555", // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录" // 授权按钮文案 默认值:“本机号码一键登录”
},
// 其他登录方式
"otherLoginButton": {
"visible": "true", // 是否显示其他登录按钮,默认值:true
"normalColor": "#f8f8f8", // 其他登录按钮正常状态背景颜色 默认值:#f8f8f8
"highlightColor": "#dedede", // 其他登录按钮按下状态背景颜色 默认值:#dedede
"textColor": "#000000", // 其他登录按钮文字颜色 默认值:#000000
"title": "密码登录", // 其他登录方式按钮文字 默认值:“其他登录方式”
"borderWidth": "1px", // 边框宽度 默认值:1px(仅ios支持)
"borderColor": "#c5c5c5" //边框颜色 默认值: #c5c5c5(仅ios支持)
},
// 自定义按钮登录方式
"buttons": { // 仅全屏模式生效,配置页面下方按钮 (3.1.14+ 版本支持)
"iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px
"list": [{
"provider": "apple",
"iconPath": "/static/test.jpg", // 图标路径仅支持本地图片
},
{
"provider": "weixin",
"iconPath": "/static/test.jpg",
}
]
},
"privacyTerms": {
"defaultCheckBoxState": "true", // 条款勾选框初始状态 默认值: true
"textColor": "#8a8b90", // 文字颜色 默认值:#8a8b90
"termsColor": "#FF5555", // 协议文字颜色 默认值: #1d4788
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"fontSize": "12", // 字体大小 默认值:12,
// "privacyItems": [
// // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
// {
// "url": "https://", // 点击跳转的协议详情页面
// "title": "用户服务协议" // 协议名称
// }
// ]
}
},
success(res) { // 登录成功
console.log(res);
that.openid = res.authResult.openid;
that.access_token = res.authResult.access_token;
uniCloud.callFunction({
name: 'getPhone', // 云函数名称
data: {
'access_token': res.authResult.access_token,
'openid': res.authResult.openid
},
success(callRes) {
loginbyphone({
phone: callRes.result.data.phoneNumber
}).then(data => {
if (data.result == '0') {
uni.setStorageSync('uid', data.id)
customerdetail({
uid: data.id
}).then(info => {
if (data.result == '0') {
uni.setStorageSync(
'userInfo',
info)
uni.switchTab({
url: '/pages/tabbar/index'
})
}
})
} else {
that.$u.toast(data.resultNote);
}
})

                                },  
                                fail(callErr) {  
                                    console.log('调用云函数出错' + callErr)  
                                    that.$u.toast('登录失败');  
                                },  
                                complete() {  
                                    uni.closeAuthView() //关闭授权登录界面                     
                                }  
                            })  
                            uni.closeAuthView() //关闭授权登录界面                 
                        },  
                        fail(res) { // 登录失败  
                            console.log(res.errCode)  
                            console.log(res.errMsg)  
                            if (res.code == "30002") {  
                                console.log('密码登录');  
                            } else if (res.code == "30008") {  
                                console.log('自定义按钮登录方式');  
                            }  
                        }  
                    })  
                },  
                fail(res) {   
                    // 预登录失败  
                    console.log(res)  

                }  
            });  
        },  

···

预期结果:

···
loginPhone() {
let that = this
uni.preLogin({
provider: 'univerify',
success(res) { //预登录成功
// 显示一键登录选项
console.log(res);
console.log('999', 2222);
console.log('预登录成功');
uni.login({
provider: 'univerify',
univerifyStyle: { // 自定义登录框样式
//参考univerifyStyle 数据结构
"fullScreen": false, // 是否全屏显示,默认值: false
"title": '快速登录',
"backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff
"icon": {
"path": "static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"phoneNum": {
"color": "#000000", // 手机号文字颜色 默认值:#000000
"fontSize": "18" // 手机号字体大小 默认值:18
},
"slogan": {
"color": "#8a8b90", // slogan 字体颜色 默认值:#8a8b90
"fontSize": "12" // slogan 字体大小 默认值:12
},
// 一键登录
"authButton": {
"normalColor": "#FF3A3A", // 授权按钮正常状态背景颜色 默认值:#3479f5
"highlightColor": "#FF3A3A", // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)
"disabledColor": "#FF5555", // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录" // 授权按钮文案 默认值:“本机号码一键登录”
},
// 其他登录方式
"otherLoginButton": {
"visible": "true", // 是否显示其他登录按钮,默认值:true
"normalColor": "#f8f8f8", // 其他登录按钮正常状态背景颜色 默认值:#f8f8f8
"highlightColor": "#dedede", // 其他登录按钮按下状态背景颜色 默认值:#dedede
"textColor": "#000000", // 其他登录按钮文字颜色 默认值:#000000
"title": "密码登录", // 其他登录方式按钮文字 默认值:“其他登录方式”
"borderWidth": "1px", // 边框宽度 默认值:1px(仅ios支持)
"borderColor": "#c5c5c5" //边框颜色 默认值: #c5c5c5(仅ios支持)
},
// 自定义按钮登录方式
"buttons": { // 仅全屏模式生效,配置页面下方按钮 (3.1.14+ 版本支持)
"iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px
"list": [{
"provider": "apple",
"iconPath": "/static/test.jpg", // 图标路径仅支持本地图片
},
{
"provider": "weixin",
"iconPath": "/static/test.jpg",
}
]
},
"privacyTerms": {
"defaultCheckBoxState": "true", // 条款勾选框初始状态 默认值: true
"textColor": "#8a8b90", // 文字颜色 默认值:#8a8b90
"termsColor": "#FF5555", // 协议文字颜色 默认值: #1d4788
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"fontSize": "12", // 字体大小 默认值:12,
// "privacyItems": [
// // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
// {
// "url": "https://", // 点击跳转的协议详情页面
// "title": "用户服务协议" // 协议名称
// }
// ]
}
},
success(res) { // 登录成功
console.log(res);
that.openid = res.authResult.openid;
that.access_token = res.authResult.access_token;
uniCloud.callFunction({
name: 'getPhone', // 云函数名称
data: {
'access_token': res.authResult.access_token,
'openid': res.authResult.openid
},
success(callRes) {
loginbyphone({
phone: callRes.result.data.phoneNumber
}).then(data => {
if (data.result == '0') {
uni.setStorageSync('uid', data.id)
customerdetail({
uid: data.id
}).then(info => {
if (data.result == '0') {
uni.setStorageSync(
'userInfo',
info)
uni.switchTab({
url: '/pages/tabbar/index'
})
}
})
} else {
that.$u.toast(data.resultNote);
}
})

                                },  
                                fail(callErr) {  
                                    console.log('调用云函数出错' + callErr)  
                                    that.$u.toast('登录失败');  
                                },  
                                complete() {  
                                    uni.closeAuthView() //关闭授权登录界面                     
                                }  
                            })  
                            uni.closeAuthView() //关闭授权登录界面                 
                        },  
                        fail(res) { // 登录失败  
                            console.log(res.errCode)  
                            console.log(res.errMsg)  
                            if (res.code == "30002") {  
                                console.log('密码登录');  
                            } else if (res.code == "30008") {  
                                console.log('自定义按钮登录方式');  
                            }  
                        }  
                    })  
                },  
                fail(res) {   
                    // 预登录失败  
                    console.log(res)  

                }  
            });  
        },  

···

实际结果:

···
loginPhone() {
let that = this
uni.preLogin({
provider: 'univerify',
success(res) { //预登录成功
// 显示一键登录选项
console.log(res);
console.log('999', 2222);
console.log('预登录成功');
uni.login({
provider: 'univerify',
univerifyStyle: { // 自定义登录框样式
//参考univerifyStyle 数据结构
"fullScreen": false, // 是否全屏显示,默认值: false
"title": '快速登录',
"backgroundColor": "#ffffff", // 授权页面背景颜色,默认值:#ffffff
"icon": {
"path": "static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo
},
"phoneNum": {
"color": "#000000", // 手机号文字颜色 默认值:#000000
"fontSize": "18" // 手机号字体大小 默认值:18
},
"slogan": {
"color": "#8a8b90", // slogan 字体颜色 默认值:#8a8b90
"fontSize": "12" // slogan 字体大小 默认值:12
},
// 一键登录
"authButton": {
"normalColor": "#FF3A3A", // 授权按钮正常状态背景颜色 默认值:#3479f5
"highlightColor": "#FF3A3A", // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)
"disabledColor": "#FF5555", // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)
"textColor": "#ffffff", // 授权按钮文字颜色 默认值:#ffffff
"title": "本机号码一键登录" // 授权按钮文案 默认值:“本机号码一键登录”
},
// 其他登录方式
"otherLoginButton": {
"visible": "true", // 是否显示其他登录按钮,默认值:true
"normalColor": "#f8f8f8", // 其他登录按钮正常状态背景颜色 默认值:#f8f8f8
"highlightColor": "#dedede", // 其他登录按钮按下状态背景颜色 默认值:#dedede
"textColor": "#000000", // 其他登录按钮文字颜色 默认值:#000000
"title": "密码登录", // 其他登录方式按钮文字 默认值:“其他登录方式”
"borderWidth": "1px", // 边框宽度 默认值:1px(仅ios支持)
"borderColor": "#c5c5c5" //边框颜色 默认值: #c5c5c5(仅ios支持)
},
// 自定义按钮登录方式
"buttons": { // 仅全屏模式生效,配置页面下方按钮 (3.1.14+ 版本支持)
"iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px
"list": [{
"provider": "apple",
"iconPath": "/static/test.jpg", // 图标路径仅支持本地图片
},
{
"provider": "weixin",
"iconPath": "/static/test.jpg",
}
]
},
"privacyTerms": {
"defaultCheckBoxState": "true", // 条款勾选框初始状态 默认值: true
"textColor": "#8a8b90", // 文字颜色 默认值:#8a8b90
"termsColor": "#FF5555", // 协议文字颜色 默认值: #1d4788
"prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”
"suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”
"fontSize": "12", // 字体大小 默认值:12,
// "privacyItems": [
// // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效
// {
// "url": "https://", // 点击跳转的协议详情页面
// "title": "用户服务协议" // 协议名称
// }
// ]
}
},
success(res) { // 登录成功
console.log(res);
that.openid = res.authResult.openid;
that.access_token = res.authResult.access_token;
uniCloud.callFunction({
name: 'getPhone', // 云函数名称
data: {
'access_token': res.authResult.access_token,
'openid': res.authResult.openid
},
success(callRes) {
loginbyphone({
phone: callRes.result.data.phoneNumber
}).then(data => {
if (data.result == '0') {
uni.setStorageSync('uid', data.id)
customerdetail({
uid: data.id
}).then(info => {
if (data.result == '0') {
uni.setStorageSync(
'userInfo',
info)
uni.switchTab({
url: '/pages/tabbar/index'
})
}
})
} else {
that.$u.toast(data.resultNote);
}
})

                                },  
                                fail(callErr) {  
                                    console.log('调用云函数出错' + callErr)  
                                    that.$u.toast('登录失败');  
                                },  
                                complete() {  
                                    uni.closeAuthView() //关闭授权登录界面                     
                                }  
                            })  
                            uni.closeAuthView() //关闭授权登录界面                 
                        },  
                        fail(res) { // 登录失败  
                            console.log(res.errCode)  
                            console.log(res.errMsg)  
                            if (res.code == "30002") {  
                                console.log('密码登录');  
                            } else if (res.code == "30008") {  
                                console.log('自定义按钮登录方式');  
                            }  
                        }  
                    })  
                },  
                fail(res) {   
                    // 预登录失败  
                    console.log(res)  

                }  
            });  
        },  

···

bug描述:

一键登录配置页面,状态是正常的

2023-04-13 14:40 负责人:无 分享
已邀请:
BoredApe

BoredApe - 有问题就会有答案。

1、确认开发者中心一键登录已添加应用并审核通过
2、确认添加应用时使用的签名证书和云打包时使用的签名证书一致

  • 十月1013 (作者)

    这些都没问题的,中途修改了一下应用之后才报错的

    2023-04-13 14:54

k***@qq.com

k***@qq.com

我是打包自定义基座,在iPhone上报30005错误,之前都是可以的。不知道哪里出问题了。用官方的标准基座也是这个错误。但是同一台iPhone手机上,安装应用商店之前的正式版,可以正常使用

2***@qq.com

2***@qq.com

作者解决了吗

要回复问题请先登录注册