@@ -119,7 +119,9 @@ export const sendVerificationMail = async (
119
119
}
120
120
121
121
const emailToken = crypto . randomBytes ( 16 ) . toString ( "hex" ) ;
122
- await redisClient . set ( email , emailToken , { EX : 60 * 5 } ) ; // expire in 5 minutes
122
+ await redisClient . set ( `email_verification:${ email } ` , emailToken , {
123
+ EX : 60 * 5 ,
124
+ } ) ; // expire in 5 minutes
123
125
await sendMail (
124
126
email ,
125
127
ACCOUNT_VERIFICATION_SUBJ ,
@@ -152,7 +154,7 @@ export const verifyUser = async (
152
154
return res . status ( 404 ) . json ( { message : `User ${ email } not found` } ) ;
153
155
}
154
156
155
- const expectedToken = await redisClient . get ( email ) ;
157
+ const expectedToken = await redisClient . get ( `email_verification: ${ email } ` ) ;
156
158
157
159
if ( expectedToken !== token ) {
158
160
return res
@@ -353,8 +355,16 @@ export const sendResetPasswordMail = async (
353
355
return res . status ( 404 ) . json ( { message : `User not found` } ) ;
354
356
}
355
357
358
+ if ( ! user . isVerified ) {
359
+ return res . status ( 403 ) . json ( {
360
+ message : "User is not verified. Please verify your account first." ,
361
+ } ) ;
362
+ }
363
+
356
364
const emailToken = crypto . randomBytes ( 16 ) . toString ( "hex" ) ;
357
- await redisClient . set ( email , emailToken , { EX : 60 * 5 } ) ; // expire in 5 minutes
365
+ await redisClient . set ( `password_reset:${ email } ` , emailToken , {
366
+ EX : 60 * 5 ,
367
+ } ) ; // expire in 5 minutes
358
368
await sendMail (
359
369
email ,
360
370
RESET_PASSWORD_SUBJ ,
@@ -387,7 +397,7 @@ export const resetPassword = async (
387
397
return res . status ( 404 ) . json ( { message : `User not found` } ) ;
388
398
}
389
399
390
- const expectedToken = await redisClient . get ( email ) ;
400
+ const expectedToken = await redisClient . get ( `password_reset: ${ email } ` ) ;
391
401
392
402
if ( expectedToken !== token ) {
393
403
return res
@@ -407,9 +417,7 @@ export const resetPassword = async (
407
417
const updatedUser = await _updateUserPassword ( email , hashedPassword ) ;
408
418
409
419
if ( ! updatedUser ) {
410
- return res
411
- . status ( 404 )
412
- . json ( { message : `User's password not reset.` } ) ;
420
+ return res . status ( 404 ) . json ( { message : `User's password not reset.` } ) ;
413
421
}
414
422
415
423
return res
0 commit comments