滚滚红尘
滚滚红尘
  • 发布:2023-08-14 22:43
  • 更新:2023-08-15 10:09
  • 阅读:479

一键登录连接不上云端函数

分类:uniCloud

使用本地函数没问题。连接云端函数就不行了。报错。

这个图是使用本地函数 可以成功。


这个图是使用云端函数 失败!


这个图是日志

代码:

fastLoginFn() {  
                  console.log("手机号一键登录")  
                  var this_ = this  
                  // 预登陆  
                  uni.preLogin({  
                    provider: "univerify",  
                    success: () => {  
                      uni.login({  
                        provider: "univerify",  
                        univerifyStyle: {    
                        "fullScreen": false, // 是否全屏显示,默认值: false  
                        "backgroundColor": "#ffffff",  // 授权页面背景颜色,默认值:#ffffff  
                        "backgroundImage": "", // 全屏显示的背景图片,默认值:"" (仅支持本地图片,只有全屏显示时支持)    
                        "icon": {    
                            "path": "static/xxx.png", // 自定义显示在授权框中的logo,仅支持本地图片 默认显示App logo  
                            "width":  "60px",  //图标宽度 默认值:60px  
                            "height": "60px"   //图标高度 默认值:60px  
                        },    
                        "closeIcon": {    
                            "path": "static/xxx.png" // 自定义关闭按钮,仅支持本地图片。 HBuilderX3.3.7+版本支持  
                        },    
                        "phoneNum": {    
                            "color": "#202020"  // 手机号文字颜色 默认值:#202020    
                        },    
                        "slogan": {    
                            "color": "#BBBBBB"  //  slogan 字体颜色 默认值:#BBBBBB    
                        },    
                        "authButton": {    
                            "normalColor": "#3479f5", // 授权按钮正常状态背景颜色 默认值:#3479f5    
                            "highlightColor": "#2861c5",  // 授权按钮按下状态背景颜色 默认值:#2861c5(仅ios支持)    
                            "disabledColor": "#73aaf5",  // 授权按钮不可点击时背景颜色 默认值:#73aaf5(仅ios支持)    
                            "textColor": "#ffffff",  // 授权按钮文字颜色 默认值:#ffffff    
                            "title": "本机号码一键登录", // 授权按钮文案 默认值:“本机号码一键登录”    
                            "borderRadius": "24px"  // 授权按钮圆角 默认值:"24px" (按钮高度的一半)  
                        },    
                        "otherLoginButton": {    
                            "visible": true, // 是否显示其他登录按钮,默认值:true    
                            "normalColor": "", // 其他登录按钮正常状态背景颜色 默认值:透明   
                            "highlightColor": "", // 其他登录按钮按下状态背景颜色 默认值:透明   
                            "textColor": "#656565", // 其他登录按钮文字颜色 默认值:#656565    
                            "title": "使用验证码登录", // 其他登录方式按钮文字 默认值:“其他登录方式”    
                            "borderColor": "",  //边框颜色 默认值:透明(仅iOS支持)    
                            "borderRadius": "0px" // 其他登录按钮圆角 默认值:"24px" (按钮高度的一半)  
                        },    
                        "privacyTerms": {    
                            "defaultCheckBoxState":true, // 条款勾选框初始状态 默认值: true  
                            "isCenterHint":false, //未勾选服务条款时点击登录按钮的提示是否居中显示 默认值: false (3.7.13+ 版本支持)  
                            "uncheckedImage":"", // 可选 条款勾选框未选中状态图片(仅支持本地图片 建议尺寸 24x24px)(3.2.0+ 版本支持)     
                            "checkedImage":"", // 可选 条款勾选框选中状态图片(仅支持本地图片 建议尺寸24x24px)(3.2.0+ 版本支持)     
                            "checkBoxSize":12, // 可选 条款勾选框大小,仅android支持  
                            "textColor": "#BBBBBB", // 文字颜色 默认值:#BBBBBB    
                            "termsColor": "#5496E3", //  协议文字颜色 默认值: #5496E3    
                            "prefix": "我已阅读并同意", // 条款前的文案 默认值:“我已阅读并同意”    
                            "suffix": "并使用本机号码登录", // 条款后的文案 默认值:“并使用本机号码登录”    
                            "privacyItems": [  // 自定义协议条款,最大支持2个,需要同时设置url和title. 否则不生效    
                                {    
                                    "url": "XXXXXX", // 点击跳转的协议详情页面    
                                    "title": "用户服务协议" // 协议名称    
                                }    
                            ]    
                        },  
                        "buttons": {  // 自定义页面下方按钮仅全屏模式生效(3.1.14+ 版本支持)  
                            "iconWidth": "45px", // 图标宽度(高度等比例缩放) 默认值:45px  
                            "list": [  
                                {  
                                    "provider": "apple",  
                                    "iconPath": "/static/apple.png" // 图标路径仅支持本地图片  
                                },   
                                {  
                                    "provider": "weixin",  
                                    "iconPath": "/static/wechat.png" // 图标路径仅支持本地图片  
                                }  
                            ]  
                          }  
                        },  
                        success: (res) => {  
                            this.token = res.authResult.access_token;  
                            this.openid = res.authResult.openid;  
                          console.log("一键登录调用返回的数据", res)  
                          uniCloud.callFunction({  
                              name: "getPhoneNumber", // 云函数名称  
                              data: {  
                                access_token: res.authResult.access_token, // 客户端一键登录接口返回的access_token  
                                openid: res.authResult.openid // 客户端一键登录接口返回的openid  
                              }  
                            })  
                            .then((dataRes) => {  
                              console.log("云函数返回的参数", dataRes)   
                              let phone = dataRes.result.data.phoneNumber  
                              this.userPhone = dataRes.result.data.phoneNumber  
                              this.login(phone); // 这里进行登录操作  
                            })  
                            .catch((err) => {  
                              console.log("云函数报错", err)  
                              uni.showToast({  
                                title: err.errMsg,  
                                icon: "none"  
                              })  
                              this_ = this  
                              setTimeout(() => {  
                                  this.btn = true;  
                                uni.closeAuthView() //关闭一键登录弹出窗口  
                                this_.onClickMsgLogin()  
                              }, 500)  
                            })  
                          uni.showToast({  
                            title: res.authResult,  
                            icon: "none"  
                          })  
                          // console.log("云函数调用返回数据", dataRes)  
                        },  
                        fail(err) {  
                          // 登录失败或者点击其他登录方式,自定义按钮等  
                          console.log("一键登录uni.login失败", err)  
                          uni.showToast({  
                            title: res.errMsg || err.metadata?.resultDesc,  
                            icon: "none"  
                          })  

                         setTimeout(() => {  
                            this.btn = true;  
                            uni.closeAuthView() //关闭一键登录弹出窗口  
                            this_.onClickMsgLogin()  
                          }, 500)  
                        }  
                      })  
                    },  
                    fail(res) {  
                      console.log("一键登录uni.preLogin失败", res)  
                      if (res.errMsg != "login:ok") {  
                      // 这里注意有个小坑: 不同运营商,返回的报错字段不同, 经过测试, 以下几乎包含了三大运营商报错字段  
                        uni.showToast({  
                          title: res.errMsg || res.metadata.resultMsg || res.metadata.error_data || res.metadata.resultDesc || "请检查是否插入有效sim卡及开启蜂窝数据网络",  
                          icon: "none"  
                        })  
                      }  
                      //如果手机没有插入有效的sim卡,或者手机蜂窝数据网络关闭,  
                      //都有可能造成预登录校验失败。  

                      setTimeout(() => {  
                      // 预登陆失败, 做其他操作  
                        this_.onClickMsgLogin()  
                      }, 500)  
                    }  
                  })  
                },
2023-08-14 22:43 负责人:无 分享
已邀请:
DCloud_云服务_moyang

DCloud_云服务_moyang

"e is not defind",检查云函数的index.js中是否有语法问题

  • 滚滚红尘 (作者)

    没啥毛病吧。官方的代码。

    'use strict';

    exports.main = async (event, context) => {

    const res = await uniCloud.getPhoneNumber({

    appid: 'UNIXXXXX,

    provider: 'univerify',

    apiKey: 'XXXXXXXXXXXXXXX',

    apiSecret: 'XXXXXXXXXXXXXX',

    access_token: event.access_token,

    openid: event.openid

    })


    console.log(res);

    return {

    code: 0,

    message: '获取手机号成功',

    data:res

    }

    }

    2023-08-15 13:03

  • 滚滚红尘 (作者)

    嘿嘿,解决了。修改后要重新部署一下。。

    2023-08-15 13:24

该问题目前已经被锁定, 无法添加新回复