Skip to content

Commit 95c2e9a

Browse files
chore: Add PR's requested changes
1 parent 82e8fbc commit 95c2e9a

4 files changed

Lines changed: 18 additions & 11 deletions

File tree

app/Strategies/MFA/AbstractMFAChallengeStrategy.php

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Auth\User;
66
use Illuminate\Support\Facades\Hash;
77
use Illuminate\Support\Facades\Session;
8+
use Models\OAuth2\Client;
89

910
abstract class AbstractMFAChallengeStrategy implements IMFAChallengeStrategy
1011
{
@@ -62,4 +63,13 @@ protected function storePendingState(int $userId, bool $remember): void
6263
Session::put(self::KEY_PENDING_AT, time());
6364
Session::put(self::KEY_REMEMBER, $remember);
6465
}
66+
67+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void
68+
{
69+
}
70+
71+
public function issueChallenge(User $user, ?Client $client, bool $remember): array
72+
{
73+
return [];
74+
}
6575
}

app/Strategies/MFA/EmailOTPMFAChallengeStrategy.php

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
use Auth\Repositories\IUserRecoveryCodeRepository;
66
use Auth\User;
77
use Models\OAuth2\Client;
8+
use Models\OAuth2\OAuth2OTP;
89
use OAuth2\OAuth2Protocol;
910
use OAuth2\Services\ITokenService;
1011

@@ -34,13 +35,9 @@ public function issueChallenge(User $user, ?Client $client, bool $remember): arr
3435
];
3536
}
3637

37-
public function verifyChallenge(User $user, string $code): void
38+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void
3839
{
39-
$otp = $this->otp_repository->getByValueConnectionAndUserName(
40-
$code,
41-
OAuth2Protocol::OAuth2PasswordlessConnectionEmail,
42-
$user->getEmail()
43-
);
40+
$otp = OAuth2OTP::fromParams($user->getEmail(), OAuth2Protocol::OAuth2PasswordlessConnectionEmail, $code);
4441

4542
if (is_null($otp)) {
4643
throw new AuthenticationException("Non existent single-use code.");

app/Strategies/MFA/IMFAChallengeStrategy.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
interface IMFAChallengeStrategy
77
{
88
public function issueChallenge(User $user, ?Client $client, bool $remember): array;
9-
public function verifyChallenge(User $user, string $code): void;
9+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void;
1010
public function resendChallenge(User $user, ?Client $client, bool $remember): array;
1111
public function getPendingState(): ?array;
1212
public function clearPendingState(): void;

tests/Unit/MFA/AbstractMFAChallengeStrategyTest.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ protected function setUp(): void
1919
$repo = \Mockery::mock(IUserRecoveryCodeRepository::class);
2020
$this->strategy = new class($repo) extends AbstractMFAChallengeStrategy {
2121
public function issueChallenge(User $user, ?Client $client, bool $remember): array { return []; }
22-
public function verifyChallenge(User $user, string $code): void {}
22+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void {}
2323
public function resendChallenge(User $user, ?Client $client, bool $remember): array { return []; }
2424
public function exposeStorePendingState(int $userId, bool $remember): void {
2525
$this->storePendingState($userId, $remember);
@@ -93,7 +93,7 @@ public function testVerifyRecoveryCode_withMatchingCode_marksAsUsed(): void
9393

9494
$strategy = new class($repo) extends AbstractMFAChallengeStrategy {
9595
public function issueChallenge(User $user, ?Client $client, bool $remember): array { return []; }
96-
public function verifyChallenge(User $user, string $code): void {}
96+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void {}
9797
public function resendChallenge(User $user, ?Client $client, bool $remember): array { return []; }
9898
};
9999

@@ -114,7 +114,7 @@ public function testVerifyRecoveryCode_withNonMatchingCode_throwsException(): vo
114114

115115
$strategy = new class($repo) extends AbstractMFAChallengeStrategy {
116116
public function issueChallenge(User $user, ?Client $client, bool $remember): array { return []; }
117-
public function verifyChallenge(User $user, string $code): void {}
117+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void {}
118118
public function resendChallenge(User $user, ?Client $client, bool $remember): array { return []; }
119119
};
120120

@@ -132,7 +132,7 @@ public function testVerifyRecoveryCode_withAllCodesUsed_throwsException(): void
132132

133133
$strategy = new class($repo) extends AbstractMFAChallengeStrategy {
134134
public function issueChallenge(User $user, ?Client $client, bool $remember): array { return []; }
135-
public function verifyChallenge(User $user, string $code): void {}
135+
public function verifyChallenge(User $user, string $code, ?Client $client = null): void {}
136136
public function resendChallenge(User $user, ?Client $client, bool $remember): array { return []; }
137137
};
138138

0 commit comments

Comments
 (0)