5***@qq.com
5***@qq.com
  • 发布:2025-03-03 16:41
  • 更新:2025-06-20 23:36
  • 阅读:427

uniapp一键登录,用自有证书打包,无法一键登录

分类:uni-app

使用真机调试,可以出现授权页面,但打包的apk无法弹出授权页面
下面是我一键登录的代码:

let that = this;  
                    //在这里写一键登录的代码  
                    uni.getProvider({  
                        service: 'oauth',  
                        success: function(res) {  
                            console.log(res.provider) // ['qq', 'univerify']  

                            uni.preLogin({  
                                provider: 'univerify',  
                                success() { //预登录成功  
                                    // 显示一键登录选项  

                                    uni.login({  
                                        //正式登录,弹出授权窗  
                                        provider: 'univerify',  
                                        univerifyStyle: {  
                                            // 自定义登录框样式  
                                            fullScreen: true, // 是否全屏显示,true表示全屏模式,false表示非全屏模式,默认值为false。  
                                            backgroundColor: '#ffffff', // 授权页面背景颜色,默认值:#ffffff  
                                            icon: {  
                                                path: "/static/logo.png" // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo  
                                            },  
                                            phoneNum: {  
                                                color: '#3db8fb' // 手机号文字颜色 默认值:#000000  
                                            },  
                                            authButton: {  
                                                normalColor: '#3db8fb', // 授权按钮正常状态背景颜色 默认值:#3479f5  
                                                highlightColor: '#01C891', // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)  
                                                disabledColor: '#73aaf5', // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)  
                                                textColor: '#ffffff', // 授权按钮文字颜色 默认值:#ffffff  
                                                title: '本机号码一键登录' // 授权按钮文案 默认值:“本机号码一键登录”  
                                            }  
                                        },  
                                        success(res) {  
                                            // 正式登录成功  
                                            console.log(res  
                                                .authResult  
                                            ); // {openid:'登录授权唯一标识',access_token:'接口返回的 token'}  

                                            // 在得到access_token后,通过callfunction调用云函数  
                                            uniCloud.callFunction({  
                                                name: 'getPhoneNumber', // 云函数名称  
                                                data: {  
                                                    //传给云函数的参数  
                                                    access_token: res.authResult  
                                                        .access_token, // 客户端一键登录接口返回的access_token  
                                                    openid: res.authResult  
                                                        .openid // 客户端一键登录接口返回的openid  
                                                },  
                                                success(callRes) {  
                                                    console.log('调用云函数成功' + callRes);  
                                                    console.log(callRes)  
                                                    console.log(callRes.result)  
                                                    console.log(callRes.result  
                                                        .phoneNumber)  
                                                    // console.log(JSON.stringify(callRes))  
                                                    // let a = JSON.parse(callRes.result)  
                                                    // console.log(a)  
                                                    // 返回的json字符串转成对象后取不到phoneNumber,看后端能不能取到  
                                                    console.log(123)  
                                                    let data = {  
                                                        mobile: callRes.result  
                                                            .phoneNumber,  
                                                        // code: 'univerify',  
                                                        code: 'univer',  
                                                    };  
                                                    console.log(123)  
                                                    console.log(data);  
                                                    app_login(data)  
                                                        .then(res => {  
                                                            console.log(res);  
                                                            uni.setStorageSync(  
                                                                'token', res  
                                                                .data.token)  
                                                            getApp().globalData  
                                                                .token = res.data  
                                                                .token  
                                                            uni.navigateBack({  
                                                                delta: 1  
                                                            })  
                                                        })  
                                                        .catch(res => {  
                                                            uni.hideLoading();  
                                                            console.log(res);  
                                                            uni.showToast({  
                                                                icon: 'none',  
                                                                title: res  
                                                            });  
                                                        });  
                                                },  
                                                fail(callErr) {  
                                                    uni.showToast({  
                                                        title: '调用云函数出错' +  
                                                            callErr,  
                                                        icon: 'none',  
                                                        duration: 4000  
                                                    })  
                                                    console.log('调用云函数出错' + callErr);  
                                                },  
                                                complete() {  
                                                    uni.closeAuthView(); //关闭授权登录界面  
                                                }  
                                            });  
                                        },  
                                        fail(err) {  
                                            // 正式登录失败  
                                            uni.showToast({  
                                                title: err.errCode,  
                                                icon: 'none',  
                                                duration: 4000  
                                            })  
                                            console.log(err.errCode);  
                                            console.log(err.errMsg);  

                                            uni.closeAuthView(); //关闭授权登录界面  
                                        }  
                                    });  

                                },  
                                fail(res) {  
                                    // 预登录失败  
                                    // 不显示一键登录选项(或置灰)  
                                    // 根据错误信息判断失败原因,如有需要可将错误提交给统计服务器  
                                    console.log(res.errCode)  
                                    console.log(res.errMsg)  
                                }  
                            })  
                        }  
                    })

我的云函数也部署了,下面是我的index.js的代码




我的开发者后台一键登录也配置了

我的manifest.json里也加了一键登录

不知道哪里有问题了,求大神们帮帮

2025-03-03 16:41 负责人:无 分享
已邀请:
DCloud_Android_YJC

DCloud_Android_YJC

帮忙抓一份原生日志,电脑新建一个文件,命令行输入,adb logcat -v time > 文件绝对路径,调一键登录前回车开始,操作结束后结束。

5***@qq.com

5***@qq.com (作者)

好的,日志我打出来了。

5***@qq.com

5***@qq.com

没有后续了吗,等待中

要回复问题请先登录注册