From faf34c241bbf05a46bcca497bbf238236d686364 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=A7=A6=E7=A7=8B=E6=97=AD?= Date: Thu, 2 Mar 2023 15:16:50 +0800 Subject: [PATCH] =?UTF-8?q?=E9=82=AE=E7=AE=B1=E9=AA=8C=E8=AF=81=E7=A0=81?= =?UTF-8?q?=E6=A0=A1=E9=AA=8C=E5=A4=B1=E8=B4=A5=E6=97=B6=EF=BC=8C=E6=8A=9B?= =?UTF-8?q?=E5=87=BA403=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/email/email.service.ts | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/src/email/email.service.ts b/src/email/email.service.ts index 1abc2f1..1b801d1 100644 --- a/src/email/email.service.ts +++ b/src/email/email.service.ts @@ -68,11 +68,16 @@ export class EmailService { return { token, userId: user?.id } } + // TODO: 邮箱使用缓存而不是jwt来验证正确性和时效性,校验成功后要让验证码失效。set-cookie而不是在body返回? async verifyEmailCode(data: EmailVerifycationDto) { const { token, verifyCode, email, scene } = data - const payload = this.jwtService.verify(token, { - secret: this.getEmailJwtSecret(verifyCode, scene), - }) + const payload = await this.jwtService + .verifyAsync(token, { + secret: this.getEmailJwtSecret(verifyCode, scene), + }) + .catch((err) => { + throw new ForbiddenException(err.message) + }) if (payload.email !== email || payload.scene !== scene) { throw new ForbiddenException('邮箱验证码验证失败') }