@@ -226,9 +226,9 @@ await Task.Delay(100,
226226 public async Task < OneOf < Success , NotFound , SecretInvalid > > PasswordResetExists ( Guid passwordResetId , string secret ,
227227 CancellationToken cancellationToken = default )
228228 {
229- var validUntil = DateTime . UtcNow . Add ( Duration . PasswordResetRequestLifetime ) ;
229+ var validSince = DateTime . UtcNow - Duration . PasswordResetRequestLifetime ;
230230 var reset = await _db . UserPasswordResets . FirstOrDefaultAsync ( x =>
231- x . Id == passwordResetId && x . UsedAt == null && x . CreatedAt < validUntil ,
231+ x . Id == passwordResetId && x . UsedAt == null && x . CreatedAt >= validSince ,
232232 cancellationToken : cancellationToken ) ;
233233
234234 if ( reset is null ) return new NotFound ( ) ;
@@ -242,12 +242,12 @@ public async Task<OneOf<Success, NotFound, SecretInvalid>> PasswordResetExists(G
242242 /// <inheritdoc />
243243 public async Task < OneOf < Success , TooManyPasswordResets , NotFound > > CreatePasswordReset ( string email )
244244 {
245- var validUntil = DateTime . UtcNow . Add ( Duration . PasswordResetRequestLifetime ) ;
245+ var validSince = DateTime . UtcNow - Duration . PasswordResetRequestLifetime ;
246246 var lowerCaseEmail = email . ToLowerInvariant ( ) ;
247247 var user = await _db . Users . Where ( x => x . Email == lowerCaseEmail ) . Select ( x => new
248248 {
249249 User = x ,
250- PasswordResetCount = x . PasswordResets . Count ( y => y . UsedAt == null && y . CreatedAt < validUntil )
250+ PasswordResetCount = x . PasswordResets . Count ( y => y . UsedAt == null && y . CreatedAt >= validSince )
251251 } ) . FirstOrDefaultAsync ( ) ;
252252 if ( user is null ) return new NotFound ( ) ;
253253 if ( user . PasswordResetCount >= 3 ) return new TooManyPasswordResets ( ) ;
@@ -273,10 +273,10 @@ await _emailService.PasswordReset(new Contact(user.User.Email, user.User.Name),
273273 public async Task < OneOf < Success , NotFound , SecretInvalid > > PasswordResetComplete ( Guid passwordResetId ,
274274 string secret , string newPassword )
275275 {
276- var validUntil = DateTime . UtcNow . Add ( Duration . PasswordResetRequestLifetime ) ;
276+ var validSince = DateTime . UtcNow - Duration . PasswordResetRequestLifetime ;
277277
278278 var reset = await _db . UserPasswordResets . Include ( x => x . User ) . FirstOrDefaultAsync ( x =>
279- x . Id == passwordResetId && x . UsedAt == null && x . CreatedAt < validUntil ) ;
279+ x . Id == passwordResetId && x . UsedAt == null && x . CreatedAt >= validSince ) ;
280280
281281 if ( reset is null ) return new NotFound ( ) ;
282282
0 commit comments