'use strict'; const crypto = require('crypto') exports.main = async (event, context) => { const secret = 'XHB2021198819640123' //密钥,需要和php文件里一致 const hmac = crypto.createHmac('sha256', secret) let params = event.queryStringParameters const sign = params.sign delete params.sign const signStr = Object.keys(params).sort().map(key => { return `${key}=${params[key]}` }).join('&') hmac.update(signStr); if(sign!==hmac.digest('hex')){ throw new Error('非法访问') } const res = await uniCloud.getPhoneNumber({ appid: '__UNI__4079DC1', // 替换成自己开通一键登录的应用的DCloud appid,使用callFunction方式调用时可以不传(会自动取当前客户端的appid),如果使用云函数URL化的方式访问必须传此参数 provider: 'univerify', apiKey: '28218195fca6f5993e5fe4ac357a281b', // 在开发者中心开通服务并获取apiKey apiSecret: 'ee1268e59735aa5fdae6f0df0e9c094a', // 在开发者中心开通服务并获取apiSecret access_token: event.queryStringParameters.access_token, openid: event.queryStringParameters.openid }) console.log(res) if(res.code == 0){ return {code: 1,msg: '获取手机号成功',data:{phoneNumber:res.phoneNumber}} }else{ return {code: 0,msg: '获取手机号失败'} } }