| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- 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: '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
- })
- }
|