(3) 使用云对象sendEmailCode 发送邮箱验证码,报错送邮箱验证码失败 Error: 已启动测试模式,直接使用:123456作为邮箱验证码即可。 如果是正式项目,需自行实现发送邮件的相关功能 - DCloud问答
uni-id 没有实现邮箱验证码逻辑,需要的化需要自行接入。
因为uni-id 并没有实现 邮箱验证码逻辑,所以可以先注释掉,uni-id-co文件夹下找到module下的register的register-user-by-email
修改代码为以下代码,即可暂时注释掉邮箱验证码验证
const {
postRegister,
preRegisterWithPassword
} = require('../../lib/utils/register')
const {
verifyCaptcha
} = require('../../lib/utils/captcha')
const {
CAPTCHA_SCENE,
EMAIL_SCENE,
LOG_TYPE
} = require('../../common/constants')
const {
verifyEmailCode
} = require('../../lib/utils/verify-code')
/**
* 通过邮箱+验证码注册普通用户
* @tutorial https://uniapp.dcloud.net.cn/uniCloud/uni-id-pages.html#register-user-by-email
* @param {Object} params
* @param {String} params.email 邮箱
* @param {String} params.password 密码
* @param {String} params.nickname 昵称
* @param {String} params.code 邮箱验证码
* @param {String} params.inviteCode 邀请码
* @returns
*/
module.exports = async function(params = {}) {
const schema = {
email: 'email',
password: 'password',
nickname: {
required: false,
type: 'nickname'
},
code: { // 设置为非必填
required: false,
type: 'string'
},
inviteCode: {
required: false,
type: 'string'
}
}
this.middleware.validate(params, schema)
const {
email,
password,
nickname,
code,
inviteCode
} = params
// 注释掉邮箱验证码验证部分
// try {
// // 验证邮箱验证码,验证不通过时写入失败日志
// await verifyEmailCode({
// email,
// code,
// scene: EMAIL_SCENE.REGISTER
// })
// } catch (error) {
// await this.middleware.uniIdLog({
// data: {
// email
// },
// type: LOG_TYPE.REGISTER,
// success: false
// })
// throw error
// }
const {
user,
extraData
} = await preRegisterWithPassword.call(this, {
user: {
email
},
password
})
return postRegister.call(this, {
user,
extraData: {
...extraData,
nickname,
email_confirmed: 1
},
inviteCode
})
}