const db = uniCloud.database() module.exports = async function ({ data = {}, success = true, type = 'login' } = {}) { const now = Date.now() const uniIdLogCollection = db.collection('uni-id-log') const requiredDataKeyList = ['user_id', 'username', 'email', 'mobile'] const dataCopy = {} for (let i = 0; i < requiredDataKeyList.length; i++) { const key = requiredDataKeyList[i] if (key in data && typeof data[key] === 'string') { dataCopy[key] = data[key] } } const { appId, clientIP, deviceId, userAgent } = this.getClientInfo() const logData = { appid: appId, device_id: deviceId, ip: clientIP, type, ua: userAgent, create_date: now, ...dataCopy } if (success) { logData.state = 1 } else { logData.state = 0 } return uniIdLogCollection.add(logData) }