m***@qq.com
m***@qq.com
  • 发布:2024-07-30 11:59
  • 更新:2024-08-01 15:00
  • 阅读:306

【报Bug】为什么控制台不打印云函数返回的数据

分类:uniCloud

产品分类: uniCloud/App

示例代码:
云函数端  
'use strict';  
exports.main = async (event, context) => {  
  // event里包含着客户端提交的参数  
   let {openid,access_token} = event;  
  const res = await uniCloud.getPhoneNumber({  
    appid: '__UNI__1FC6043', // 替换成自己开通一键登录的应用的DCloud appid  
    provider: 'univerify',  
    access_token: event.access_token,  
    openid: event.openid  
  })  

  console.log(res); // res里包含手机号  
  // 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端  
  // 如果数据库在uniCloud上,可以直接入库  
  // 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://doc.dcloud.net.cn/uniCloud/cf-functions?id=httpclient  
  return {  
    code: 0,  
    message: '获取手机号成功',  
    phoneNumber: res.phoneNumber  
  }  

}  

客服端  
export default {  
        data() {  
            return {  

            };  
        },  
        onLoad() {  

        },  

        methods:{  

            loginPhone(){  
                uni.getProvider({  
                    service: 'oauth',  
                    success: function (res) {  
                        console.log(res.provider)  
                    }  
                });  
                uni.login({  
                    provider: 'univerify',  
                    univerifyStyle: { // 自定义登录框样式  
                    //参考`univerifyStyle 数据结构`  
                  },  
                    success(res){ // 登录成功  
                        console.log(res.authResult);  // {openid:'登录授权唯一标识',access_token:'接口返回的 token'}  
                    uni.closeAuthView()  

                    },  
                    fail(res){  // 登录失败  
                        console.log(res.errCode)  
                        console.log(res.errMsg)  

                    }  
                })  

                // 在得到access_token后,通过callfunction调用云函数  
                uniCloud.callFunction({  
                  name: "get_login", // 你的云函数名称  
                  data: {  
                    'access_token': "MDYzMTViN2Y3MmMwMjQzN2MxOGU0ODUxZjYwZGZlNmU3OWQwOWMzYzY3NzBhMTgxNzg2NDIyODQwNTk0ODQyNHx8NXx2Mnw1fGNlZWRkZmU4ODEyZjkyYzA4Mzg5NzRkM2ZjNWU2NThk", // 客户端一键登录接口返回的access_token  
                    'openid': "100gtc_74b1e7a492598fb82dcbad2b1e5f970a61" // 客户端一键登录接口返回的openid  
                  }  
                }).then(res => {  

                  res.result = {  
                    code: '',  
                    message: ''  
                  }  
                  // 登录成功,可以关闭一键登录授权界面了  
                  uni.closeAuthView()  
                }).catch(err=>{  
                  // 处理错误  
                  console.log(err)  
                })  

            }  
        }  
    }  

操作步骤:
云函数端  
'use strict';  
exports.main = async (event, context) => {  
  // event里包含着客户端提交的参数  
   let {openid,access_token} = event;  
  const res = await uniCloud.getPhoneNumber({  
    appid: '__UNI__1FC6043', // 替换成自己开通一键登录的应用的DCloud appid  
    provider: 'univerify',  
    access_token: event.access_token,  
    openid: event.openid  
  })  

  console.log(res); // res里包含手机号  
  // 执行用户信息入库等操作,正常情况下不要把完整手机号返回给前端  
  // 如果数据库在uniCloud上,可以直接入库  
  // 如果数据库不在uniCloud上,可以通过 uniCloud.httpclient API,将手机号通过http方式传递给其他服务器的接口,详见:https://doc.dcloud.net.cn/uniCloud/cf-functions?id=httpclient  
  return {  
    code: 0,  
    message: '获取手机号成功',  
    phoneNumber: res.phoneNumber  
  }  

}  

客服端  
export default {  
        data() {  
            return {  

            };  
        },  
        onLoad() {  

        },  

        methods:{  

            loginPhone(){  
                uni.getProvider({  
                    service: 'oauth',  
                    success: function (res) {  
                        console.log(res.provider)  
                    }  
                });  
                uni.login({  
                    provider: 'univerify',  
                    univerifyStyle: { // 自定义登录框样式  
                    //参考`univerifyStyle 数据结构`  
                  },  
                    success(res){ // 登录成功  
                        console.log(res.authResult);  // {openid:'登录授权唯一标识',access_token:'接口返回的 token'}  
                    uni.closeAuthView()  

                    },  
                    fail(res){  // 登录失败  
                        console.log(res.errCode)  
                        console.log(res.errMsg)  

                    }  
                })  

                // 在得到access_token后,通过callfunction调用云函数  
                uniCloud.callFunction({  
                  name: "get_login", // 你的云函数名称  
                  data: {  
                    'access_token': "MDYzMTViN2Y3MmMwMjQzN2MxOGU0ODUxZjYwZGZlNmU3OWQwOWMzYzY3NzBhMTgxNzg2NDIyODQwNTk0ODQyNHx8NXx2Mnw1fGNlZWRkZmU4ODEyZjkyYzA4Mzg5NzRkM2ZjNWU2NThk", // 客户端一键登录接口返回的access_token  
                    'openid': "100gtc_74b1e7a492598fb82dcbad2b1e5f970a61" // 客户端一键登录接口返回的openid  
                  }  
                }).then(res => {  

                  res.result = {  
                    code: '',  
                    message: ''  
                  }  
                  // 登录成功,可以关闭一键登录授权界面了  
                  uni.closeAuthView()  
                }).catch(err=>{  
                  // 处理错误  
                  console.log(err)  
                })  

            }  
        }  
    }  

预期结果:

点击一键登录后控制台打印云函数返回的数据,显示登录成功

实际结果:

使用一键登录功能时控制台只打印“openid”和“access-token”的信息,并不打印云函数返回的信息,但是服务空间显示了云函数的调用次数,一键登录服务的费用也不扣

bug描述:

SyntaxError: Unexpected end of input  
    at Object.compileFunction (node:vm:352:18)  
    at wrapSafe (node:internal/modules/cjs/loader:1033:15)  
    at Module._compile (node:internal/modules/cjs/loader:1069:27)  
    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)  
    at Module.load (node:internal/modules/cjs/loader:981:32)  
    at Function.Module._load (node:internal/modules/cjs/loader:822:12)  
    at Module.require (node:internal/modules/cjs/loader:1005:19)  
    at require (node:internal/modules/cjs/helpers:102:18)  
    at Me (/tmp/function/index.js:1:85021)  
    at async Fe (/tmp/function/index.js:1:86102)  
请求响应状态: fail  

使用一键登录功能时控制台只打印“openid”和“access-token”的信息,并不打印云函数返回的信息,但是服务空间显示了云函数的调用次数,一键登录服务的费用也不扣
2024-07-30 11:59 负责人:无 分享
已邀请:
DCloud_uniCloud_CRL

DCloud_uniCloud_CRL

你如果是云端运行的话,控制台不会用日志。日志需要在uniCloud控制台查看,你看下详细的云函数日志,发出来看下。

  • m***@qq.com (作者)

    请求入参: {

    "args": {

    "access_token": "MDYzMTViN2Y3MmMwMjQzN2MxOGU0ODUxZjYwZGZlNmU3OWQwOWMzYzY3NzBhMTgxNzg2NDIyODQwNTk0ODQyNHx8NXx2Mnw1fGNlZWRkZmU4ODEyZjkyYzA4Mzg5NzRkM2ZjNWU2NThk",

    "openid": "100gtc_74b1e7a492598fb82dcbad2b1e5f970a61",

    "clientInfo": {

    "PLATFORM": "app",

    "OS": "android",

    "APPID": "UNI1FC6043",

    "DEVICEID": "0BBF5917B387949E20959252D5640FDB",

    "channel": "",

    "scene": 1001,

    "appId": "UNI1FC6043",

    "appLanguage": "zh-Hans",

    "appName": "CheckIn",

    "appVersion": "14.15",

    "appVersionCode": 1415,

    "appWgtVersion": "1.0.0",

    "browserName": "chrome",

    "browserVersion": "103.0.5060.129",

    "deviceBrand": "oppo",

    "deviceId": "0BBF5917B387949E20959252D5640FDB",

    "deviceModel": "PJS110",

    "deviceOrientation": "portrait",

    "devicePixelRatio": 2,

    "deviceType": "phone",

    "errMsg": "getSystemInfoSync:ok",

    "oaid": "ED1FF08C79BB4952991212F5DDB676188508dc569aef4140bd229e3ef2053332",

    "osAndroidAPILevel": 33,

    "osLanguage": "zh-CN",

    "osName": "android",

    "osTheme": "light",

    "osVersion": "13",

    "romName": "ColorOS",

    "romVersion": "",

    "safeArea": {

    "left": 0,

    "right": 360,

    "top": 0,

    "bottom": 686,

    "width": 360,

    "height": 686

    },

    "safeAreaInsets": {

    "top": 0,

    "right": 0,

    "bottom": 0,

    "left": 0

    },

    "screenHeight": 762,

    "screenWidth": 360,

    "statusBarHeight": 32,

    "ua": "Mozilla/5.0 (Linux; Android 13; PJS110 Build/TP1A.220905.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36 uni-app (Immersed/32.0)",

    "uniCompileVersion": "4.15",

    "uniPlatform": "app",

    "uniRuntimeVersion": "4.15",

    "windowBottom": 0,

    "windowHeight": 686,

    "windowTop": 0,

    "windowWidth": 360,

    "locale": "zh-Hans",

    "LOCALE": "zh-Hans"

    }

    },

    "requestId": "ac1cd3621722309943658187724"

    }

    [get_login/ac1cd3621722309943658187724/19ms/ERROR] Unexpected end of input

    /tmp/function/__index.js:33


    SyntaxError: Unexpected end of input

    at Object.compileFunction (node:vm:352:18)

    at wrapSafe (node:internal/modules/cjs/loader:1033:15)

    at Module._compile (node:internal/modules/cjs/loader:1069:27)

    at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)

    at Module.load (node:internal/modules/cjs/loader:981:32)

    at Function.Module._load (node:internal/modules/cjs/loader:822:12)

    at Module.require (node:internal/modules/cjs/loader:1005:19)

    at require (node:internal/modules/cjs/helpers:102:18)

    at Me (/tmp/function/index.js:1:85021)

    at async Fe (/tmp/function/index.js:1:86102)

    请求响应状态: fail

    帮忙看下,谢谢

    2024-07-31 09:42

  • DCloud_uniCloud_CRL

    回复 m***@qq.com: 检查一下云函数代码第33行有没有错误

    2024-07-31 11:10

  • m***@qq.com (作者)

    回复 DCloud_uniCloud_CRL: 云函数都没有33行( ˙灬˙ ) ,我上传了两张图片,就是我的代码,可以帮我看一下是哪里出问题了吗,万分感谢(´。✪ω✪。`)

    2024-08-01 10:41

m***@qq.com

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

请求入参: {
"args": {
"access_token": "MDYzMTViN2Y3MmMwMjQzN2MxOGU0ODUxZjYwZGZlNmU3OWQwOWMzYzY3NzBhMTgxNzg2NDIyODQwNTk0ODQyNHx8NXx2Mnw1fGNlZWRkZmU4ODEyZjkyYzA4Mzg5NzRkM2ZjNWU2NThk",
"openid": "100gtc_74b1e7a492598fb82dcbad2b1e5f970a61",
"clientInfo": {
"PLATFORM": "app",
"OS": "android",
"APPID": "UNI1FC6043",
"DEVICEID": "0BBF5917B387949E20959252D5640FDB",
"channel": "",
"scene": 1001,
"appId": "UNI1FC6043",
"appLanguage": "zh-Hans",
"appName": "CheckIn",
"appVersion": "14.15",
"appVersionCode": 1415,
"appWgtVersion": "1.0.0",
"browserName": "chrome",
"browserVersion": "103.0.5060.129",
"deviceBrand": "oppo",
"deviceId": "0BBF5917B387949E20959252D5640FDB",
"deviceModel": "PJS110",
"deviceOrientation": "portrait",
"devicePixelRatio": 2,
"deviceType": "phone",
"errMsg": "getSystemInfoSync:ok",
"oaid": "ED1FF08C79BB4952991212F5DDB676188508dc569aef4140bd229e3ef2053332",
"osAndroidAPILevel": 33,
"osLanguage": "zh-CN",
"osName": "android",
"osTheme": "light",
"osVersion": "13",
"romName": "ColorOS",
"romVersion": "",
"safeArea": {
"left": 0,
"right": 360,
"top": 0,
"bottom": 686,
"width": 360,
"height": 686
},
"safeAreaInsets": {
"top": 0,
"right": 0,
"bottom": 0,
"left": 0
},
"screenHeight": 762,
"screenWidth": 360,
"statusBarHeight": 32,
"ua": "Mozilla/5.0 (Linux; Android 13; PJS110 Build/TP1A.220905.001; wv) AppleWebKit/537.36 (KHTML, like Gecko) Version/4.0 Chrome/103.0.5060.129 Mobile Safari/537.36 uni-app (Immersed/32.0)",
"uniCompileVersion": "4.15",
"uniPlatform": "app",
"uniRuntimeVersion": "4.15",
"windowBottom": 0,
"windowHeight": 686,
"windowTop": 0,
"windowWidth": 360,
"locale": "zh-Hans",
"LOCALE": "zh-Hans"
}
},
"requestId": "ac1cd3621722309943658187724"
}
[get_login/ac1cd3621722309943658187724/19ms/ERROR] Unexpected end of input
/tmp/function/__index.js:33

SyntaxError: Unexpected end of input
at Object.compileFunction (node:vm:352:18)
at wrapSafe (node:internal/modules/cjs/loader:1033:15)
at Module._compile (node:internal/modules/cjs/loader:1069:27)
at Object.Module._extensions..js (node:internal/modules/cjs/loader:1159:10)
at Module.load (node:internal/modules/cjs/loader:981:32)
at Function.Module._load (node:internal/modules/cjs/loader:822:12)
at Module.require (node:internal/modules/cjs/loader:1005:19)
at require (node:internal/modules/cjs/helpers:102:18)
at Me (/tmp/function/index.js:1:85021)
at async Fe (/tmp/function/index.js:1:86102)
请求响应状态: fail

m***@qq.com

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

  • DCloud_uniCloud_CRL

    代码重新上传一下试试呢

    2024-08-01 12:01

  • m***@qq.com (作者)

    回复 DCloud_uniCloud_CRL:上传之后又变成这样了,之前没报过这个错误(把图片上传了)

    2024-08-01 15:00

  • m***@qq.com (作者)

    回复 m***@qq.com: 版本更新之后不是不再提供apikey了吗,为什么还会需要这个参数

    2024-08-01 15:02

  • DCloud_uniCloud_CRL

    回复 m***@qq.com: 云函数关联uni-cloud-verify扩展库了吗?

    2024-08-01 15:24

  • m***@qq.com (作者)

    回复 DCloud_uniCloud_CRL: 关联了,要不您加我个微信吧,现在这样不能及时看到您的回复,我的微信:monizhuji

    2024-08-01 15:56

  • DCloud_uniCloud_CRL

    回复 m***@qq.com: 你私信我吧。

    2024-08-01 17:35

m***@qq.com

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

要回复问题请先登录注册