看过其他相关资料,可以使用wx.login等或许openID的,但是涉及到开发服务器的操作,目前没有条件实际。就想使用云函数测试一下,目前在开发工具上调试成功,实际生产环境还没测试过。
先说思路:用户的id和password存放在云数据库中,由于每条数据都有_openid作为标识,登录小程序的时候,在云函数中通过_openid来验证,相应的用户是否已经存在。
getRegisteredUser.js云函数代码
// 云函数入口文件
const cloud = require('wx-server-sdk')
cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) // 使用当前云环境
// 云函数入口函数
exports.main = async (event, context) => {
const wxContext = cloud.getWXContext(
const db=cloud.database();
return await db.collection('project202401_user')
.where({
_openid:db.command.eq(wxContext.OPENID)
}).count();
}
在小程序端调用云函数代码:
wx.cloud.callFunction({
name:'getRegisteredUser'
}).then((res)=>{
if(res.result.total>0){
//大于零,说明已经注册过这个用户,可以继续相关操作
}
通过使用云函数,避免把openID当作参数,从小程序端传输出去。