- 小程序上线后,打开微信开发者工具,小程序可以正常登录,关闭微信开发者工具,就登录失败了这是怎么回事?
小程序上线后,打开微信开发者工具,小程序可以正常登录,关闭微信开发者工具,就登录失败了。小程序已经上线了的,云函数也上传了,登录云函数也没有日志,好像没成功调用云函数一样。这是什么原因啊 程序如下 '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 } };
09-15 - uni.getConnectedBluetoothDevices(OBJECT)services?
上面写了uni.getConnectedBluetoothDevices(OBJECT)[图片][图片]
2024-06-02 - uniapp运行到微信开发者工具调试器的AppData没有对应的变量?
uniapp运行到微信开发者工具调试器的AppData没有对应的变量? [图片][图片]
2024-06-01 - createStoreBindings() 方法里面的元素怎么调用?
onLoad() { this.storeBindings = createStoreBindings(this,{ store, fields:['num1','num2','sum'], actions:['updataNum1','updataNum2'] }) }, 我 console.log(this.num1);console.log(this.storeBindings.num1);都试过了,全是undefined 这是怎么回事啊? num1 num2 没法直接调用吗?
2024-05-13 - 最近开始入门微信小程序开发,感觉又很多坑啊?
举个例子 swiper-item:nth-child(1) .item{ background-color:chocolate } nth-child(1)后少个空格都不能渲染,必须加上空格才可以渲染,这是不合理啊。这会大大增加程序员的排错工作量。
2023-08-10