小程序上线后,打开微信开发者工具,小程序可以正常登录,关闭微信开发者工具,就登录失败了。小程序已经上线了的,云函数也上传了,登录云函数也没有日志,好像没成功调用云函数一样。这是什么原因啊 程序如下 'use strict';
const axios = require('axios'); //导入axios 常用于与 RESTful API 进行交互,发送 GET、POST、PUT、DELETE 等请求,并处理响应数据
const crypto = require('crypto'); //导入crypto 是 Node.js 内置的加密模块,提供了各种加密算法和哈希函数。 //这个在云函数中添加依赖失败,和这个有关系吗?
const buffer = require('buffer');
//const Buffer = buffer.Buffer;
// 微信小程序的 AppID 和 AppSecret
const appId = 'xxxxxxxxxxxxxxxx';
const appSecret = 'xxxxxxxxxxxxxxxxxxx';这是我为了个人隐私处理了
// 获取微信 openid 和 session_key
async function getWechatOpenId(code) {
const url = `https://api.weixin.qq.com/sns/jscode2session?appid=${appId}&secret=${appSecret}&js_code=${code}&grant_type=authorization_code`;
const response = await axios.get(url);
console.log('Response data:', response.data); // 打印响应数据
console.log('axios', axios.VERSION); // 打印响应数据
return response.data;
}
// 生成 token
function generateToken(openid) {
const payload = {
openid,
exp: Math.floor(Date.now() / 1000) + (60 * 60 * 24) // 24小时过期
};
const secret = appSecret; // 替换为你的密钥
// const token = crypto.sign('sha256', Buffer.from(JSON.stringify(payload)), secret)//.toString('base64');
// console.log('generateToken:',token)
const payloadBuffer = Buffer.from(JSON.stringify(payload));
console.log('payloadBuffer:',payloadBuffer);
const hmac = crypto.createHmac('sha256', secret);//创建一个 HMAC 对象。
hmac.update(payloadBuffer); //更新 HMAC 对象的内容。
const signature = hmac.digest(); //生成最终的 HMAC 签名。
console.log('signature:',signature);
const token = signature.toString('base64');//将签名转换为 Base64 格式,以便于传输和存储。
console.log('token:',token);
return token;
}
const db = uniCloud.database()
exports.main = async (event, context) => {
const collection = db.collection('users')
// const {loginRes,nickName,avatarurl,identity_category,balckList,Referral,Referred,
// vip,Redemption_Points,local_openid} =event
const {loginRes,app_user} = event
const code = loginRes.code;
console.log("app_user",app_user);
// return '我来到了云函数'+code
try {
// 获取微信 openid 和 session_key
const { openid, session_key } = await getWechatOpenId(code);
// 生成 token
const token = generateToken(openid);
app_user.openid = openid
const res =await collection.where({'app_user.openid': openid}).get() //查询openid,看服务器是否注册过
// console.log('aaaaaa',res);
if(res.affectedDocs == 0){ //未注册
console.log('该用户没有注册过');
const user_id =await collection.add({
app_user
})
//判断是否携带推荐码,如果有,推荐人积分+20
return {
code: 200,
message: 'The user registration is successful!',
app_user,
user_id
}
}else{ //已经注册过
console.log('该用户注册过');
return {
code: 400,
message: 'User already exists',
app_user,
}
}
} catch (error) {
return error
}
};

在云函数里面用axios?
接口请求域名配置了么