You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.
const {
verifyCaptcha
} = require ( '../../lib/utils/captcha' )
const {
EMAIL _SCENE
} = require ( '../../common/constants' )
const {
ERROR
} = require ( '../../common/error' )
/**
* 发送邮箱验证码,可用于登录、注册、绑定邮箱、修改密码等操作
* @tutorial
* @param {Object} params
* @param {String} params.email 邮箱
* @param {String} params.captcha 图形验证码
* @param {String} params.scene 使用场景
* @returns
*/
module . exports = async function ( params = { } ) {
const schema = {
email : 'email' ,
captcha : 'string' ,
scene : 'string'
}
this . middleware . validate ( params , schema )
const {
email ,
captcha ,
scene
} = params
if ( ! ( Object . values ( EMAIL _SCENE ) . includes ( scene ) ) ) {
throw {
errCode : ERROR . INVALID _PARAM
}
}
await verifyCaptcha . call ( this , {
scene : 'send-email-code' ,
captcha
} )
// -- 测试代码
await require ( '../../lib/utils/verify-code' )
. setEmailVerifyCode . call ( this , {
email ,
code : '123456' ,
expiresIn : 180 ,
scene
} )
return {
errCode : 'uni-id-invalid-mail-template' ,
errMsg : ` 已启动测试模式, 直接使用: 123456作为邮箱验证码即可。 \n 如果是正式项目,需自行实现发送邮件的相关功能 `
}
// -- 测试代码
//发送邮件--需自行实现
}