From 1b628d923209df4c429fe1b65d6b9acbfcb5f9f5 Mon Sep 17 00:00:00 2001
From: mpyw <ryosuke_i_628@yahoo.co.jp>
Date: Sat, 25 Jun 2022 18:54:56 +0900
Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Retrieve=20through=20User?=
 =?UTF-8?q?Provider=20as=20possible?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 src/Actions/RedirectIfTwoFactorAuthenticatable.php |  6 ++++--
 src/Http/Requests/TwoFactorLoginRequest.php        | 10 +++-------
 2 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/src/Actions/RedirectIfTwoFactorAuthenticatable.php b/src/Actions/RedirectIfTwoFactorAuthenticatable.php
index 85bdf28b..f5761a03 100644
--- a/src/Actions/RedirectIfTwoFactorAuthenticatable.php
+++ b/src/Actions/RedirectIfTwoFactorAuthenticatable.php
@@ -86,9 +86,11 @@ protected function validateCredentials($request)
             });
         }
 
-        $model = $this->guard->getProvider()->getModel();
+        $user = $this->guard->getProvider()->retrieveByCredentials([
+            Fortify::username() => $request->{Fortify::username()},
+        ]);
 
-        return tap($model::where(Fortify::username(), $request->{Fortify::username()})->first(), function ($user) use ($request) {
+        return tap($user, function ($user) use ($request) {
             if (! $user || ! $this->guard->getProvider()->validateCredentials($user, ['password' => $request->password])) {
                 $this->fireFailedEvent($request, $user);
 
diff --git a/src/Http/Requests/TwoFactorLoginRequest.php b/src/Http/Requests/TwoFactorLoginRequest.php
index 8428b6e5..456ad434 100644
--- a/src/Http/Requests/TwoFactorLoginRequest.php
+++ b/src/Http/Requests/TwoFactorLoginRequest.php
@@ -94,10 +94,8 @@ public function hasChallengedUser()
             return true;
         }
 
-        $model = app(StatefulGuard::class)->getProvider()->getModel();
-
-        return $this->session()->has('login.id') &&
-            $model::find($this->session()->get('login.id'));
+        return $this->session()->has('login.id')
+            && app(StatefulGuard::class)->getProvider()->retrieveById($this->session()->get('login.id'));
     }
 
     /**
@@ -111,10 +109,8 @@ public function challengedUser()
             return $this->challengedUser;
         }
 
-        $model = app(StatefulGuard::class)->getProvider()->getModel();
-
         if (! $this->session()->has('login.id') ||
-            ! $user = $model::find($this->session()->get('login.id'))) {
+            ! $user = app(StatefulGuard::class)->getProvider()->retrieveById($this->session()->get('login.id'))) {
             throw new HttpResponseException(
                 app(FailedTwoFactorLoginResponse::class)->toResponse($this)
             );