Skip to content

Commit 0023ce4

Browse files
authored
fix: Parse Server option emailVerifyTokenReuseIfValid: true generates new token on every email verification request (#8885)
1 parent 4aba66c commit 0023ce4

File tree

3 files changed

+8
-8
lines changed

3 files changed

+8
-8
lines changed

Diff for: spec/EmailVerificationToken.spec.js

+6-6
Original file line numberDiff line numberDiff line change
@@ -897,7 +897,7 @@ describe('Email Verification Token Expiration: ', () => {
897897
const config = Config.get('test');
898898
const [userBeforeRequest] = await config.database.find('_User', {
899899
username: 'resends_verification_token',
900-
});
900+
}, {}, Auth.maintenance(config));
901901
// store this user before we make our email request
902902
expect(sendVerificationEmailCallCount).toBe(1);
903903
await new Promise(resolve => {
@@ -923,14 +923,14 @@ describe('Email Verification Token Expiration: ', () => {
923923

924924
const [userAfterRequest] = await config.database.find('_User', {
925925
username: 'resends_verification_token',
926-
});
926+
}, {}, Auth.maintenance(config));
927927

928-
// verify that our token & expiration has been changed for this new request
928+
// Verify that token & expiration haven't been changed for this new request
929929
expect(typeof userAfterRequest).toBe('object');
930+
expect(userBeforeRequest._email_verify_token).toBeDefined();
930931
expect(userBeforeRequest._email_verify_token).toEqual(userAfterRequest._email_verify_token);
931-
expect(userBeforeRequest._email_verify_token_expires_at).toEqual(
932-
userAfterRequest._email_verify_token_expires_at
933-
);
932+
expect(userBeforeRequest._email_verify_token_expires_at).toBeDefined();
933+
expect(userBeforeRequest._email_verify_token_expires_at).toEqual(userAfterRequest._email_verify_token_expires_at);
934934
done();
935935
});
936936

Diff for: src/Controllers/UserController.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,7 @@ export class UserController extends AdaptableController {
209209
_email_verify_token &&
210210
new Date() < new Date(_email_verify_token_expires_at)
211211
) {
212-
return Promise.resolve();
212+
return Promise.resolve(true);
213213
}
214214
const shouldSend = await this.setEmailVerifyToken(user, {
215215
object: Parse.User.fromJSON(Object.assign({ className: '_User' }, user)),

Diff for: src/Routers/UsersRouter.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ export class UsersRouter extends ClassesRouter {
476476
);
477477
}
478478

479-
const results = await req.config.database.find('_User', { email: email });
479+
const results = await req.config.database.find('_User', { email: email }, {}, Auth.maintenance(req.config));
480480
if (!results.length || results.length < 1) {
481481
throw new Parse.Error(Parse.Error.EMAIL_NOT_FOUND, `No user found with email ${email}`);
482482
}

0 commit comments

Comments
 (0)