const cloud = require('wx-server-sdk') cloud.init({ env: cloud.DYNAMIC_CURRENT_ENV }) const db = cloud.database() exports.main = async (event, context) => { const wxContext = cloud.getWXContext() const openid = wxContext.OPENID if (event.action === 'login') { let userRecord = await db.collection('users').where({ openid }).get() if (userRecord.data.length === 0) { const newUser = { openid, nickname: '', avatar_url: '', phone: '', gender: 0, created_at: db.serverDate() } await db.collection('users').add({ data: newUser }) userRecord = await db.collection('users').where({ openid }).get() } const user = userRecord.data[0] return { code: 0, data: { token: openid + '_' + Date.now(), user_id: user._id, user_info: { user_id: user._id, nickname: user.nickname || '用户' + openid.slice(-4), avatar_url: user.avatar_url || '', phone: user.phone || '', gender: user.gender || 0 } } } } if (event.action === 'refresh') { const userRecord = await db.collection('users').where({ openid }).get() if (userRecord.data.length === 0) { return { code: 1001, message: '用户不存在' } } return { code: 0, data: { token: openid + '_' + Date.now() } } } return { code: -1, message: '未知操作' } }