diff --git a/pkg/api/users.go b/pkg/api/users.go index 0cb58710..68103862 100644 --- a/pkg/api/users.go +++ b/pkg/api/users.go @@ -78,6 +78,20 @@ func (a *UsersApi) UserRegisterHandler(c *core.Context) (interface{}, *errs.Erro User: user.ToUserBasicInfo(), } + if settings.Container.Current.EnableUserVerifyEmail && settings.Container.Current.EnableSMTP { + token, _, err := a.tokens.CreateEmailVerifyToken(c, user) + + if err != nil { + log.ErrorfWithRequestId(c, "[users.UserRegisterHandler] failed to create email verify token for user \"uid:%d\", because %s", user.Uid, err.Error()) + } else { + err = a.users.SendVerifyEmail(user, token, c.GetClientLocale()) + + if err != nil { + log.WarnfWithRequestId(c, "[users.UserRegisterHandler] cannot send verify email to \"%s\", because %s", user.Email, err.Error()) + } + } + } + if authResp.NeedVerifyEmail { return authResp, nil } diff --git a/src/consts/api.js b/src/consts/api.js index b9929791..6a3b0bbc 100644 --- a/src/consts/api.js +++ b/src/consts/api.js @@ -1,4 +1,5 @@ const defaultTimeout = 10000; // 10s +const requestVerifyEmailTimeout = 30000; // 30s const requestForgetPasswordTimeout = 30000; // 30s const baseApiUrlPath = '/api'; const baseQrcodePath = '/qrcode'; @@ -10,6 +11,7 @@ const amapJavascriptUrl = 'https://webapi.amap.com/maps?v=2.0'; export default { defaultTimeout: defaultTimeout, + requestVerifyEmailTimeout: requestVerifyEmailTimeout, requestForgetPasswordTimeout: requestForgetPasswordTimeout, baseApiUrlPath: baseApiUrlPath, baseQrcodePath: baseQrcodePath, diff --git a/src/lib/services.js b/src/lib/services.js index e8c88ea4..e51a0edf 100644 --- a/src/lib/services.js +++ b/src/lib/services.js @@ -100,6 +100,8 @@ export default { language, defaultCurrency, firstDayOfWeek + }, { + timeout: api.requestVerifyEmailTimeout }); }, verifyEmail: ({ token, requestNewToken }) => { @@ -115,7 +117,7 @@ export default { email, password }, { - timeout: api.requestForgetPasswordTimeout + timeout: api.requestVerifyEmailTimeout }); }, requestResetPassword: ({ email }) => { @@ -191,7 +193,7 @@ export default { }, resendVerifyEmailByLoginedUser: () => { return axios.post('v1/users/verify_email/resend.json', {}, { - timeout: api.requestForgetPasswordTimeout + timeout: api.requestVerifyEmailTimeout }); }, get2FAStatus: () => {