Skip to content

Commit 0b31d0a

Browse files
jrushlowweaverryan
authored andcommitted
revert unintended default UTC tz on expiresAt
1 parent d045815 commit 0b31d0a

File tree

2 files changed

+11
-4
lines changed

2 files changed

+11
-4
lines changed

src/ResetPasswordHelper.php

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,11 +68,9 @@ public function generateResetToken(object $user): ResetPasswordToken
6868
throw new TooManyPasswordRequestsException($availableAt);
6969
}
7070

71-
$generatedAt = \time();
72-
$expiresAtTimestamp = $generatedAt + $this->resetRequestLifetime;
71+
$expiresAt = new \DateTimeImmutable(\sprintf('+%d seconds', $this->resetRequestLifetime));
7372

74-
/** @var \DateTimeImmutable $expiresAt */
75-
$expiresAt = \DateTimeImmutable::createFromFormat('U', (string) $expiresAtTimestamp);
73+
$generatedAt = ($expiresAt->getTimestamp() - $this->resetRequestLifetime);
7674

7775
$tokenComponents = $this->tokenGenerator->createToken($expiresAt, $this->repository->getUserIdentifier($user));
7876

tests/UnitTests/ResetPasswordHelperTest.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -323,6 +323,15 @@ public function testGarbageCollectorCalledDuringValidation(): void
323323
$helper->validateTokenAndFetchUser($this->randomToken);
324324
}
325325

326+
public function testExpiresAtUsesCurrentTimeZone(): void
327+
{
328+
$helper = $this->getPasswordResetHelper();
329+
$token = $helper->generateResetToken(new \stdClass());
330+
331+
$expiresAt = $token->getExpiresAt();
332+
self::assertSame(\date_default_timezone_get(), $expiresAt->getTimezone()->getName());
333+
}
334+
326335
private function getPasswordResetHelper(): ResetPasswordHelper
327336
{
328337
return new ResetPasswordHelper(

0 commit comments

Comments
 (0)