From 6dfc0229b2f4ec4d72bf7361d7e81ff62e5d4b5e Mon Sep 17 00:00:00 2001 From: Joseph Silber Date: Sun, 22 May 2016 14:50:39 -0400 Subject: [PATCH] Make the Authenticate middleware throw an AuthenticationException --- app/Http/Middleware/Authenticate.php | 31 ++++++++++++++-------------- 1 file changed, 15 insertions(+), 16 deletions(-) diff --git a/app/Http/Middleware/Authenticate.php b/app/Http/Middleware/Authenticate.php index c572274f..23881e7a 100644 --- a/app/Http/Middleware/Authenticate.php +++ b/app/Http/Middleware/Authenticate.php @@ -4,6 +4,7 @@ use Closure; use Illuminate\Support\Facades\Auth; +use Illuminate\Auth\AuthenticationException; class Authenticate { @@ -14,40 +15,38 @@ class Authenticate * @param \Closure $next * @param string ...$guards * @return mixed + * + * @throws \Illuminate\Auth\AuthenticationException */ public function handle($request, Closure $next, ...$guards) { - if ($this->check($guards)) { - return $next($request); - } + $this->authenticate($guards); - if ($request->ajax() || $request->wantsJson()) { - return response('Unauthorized.', 401); - } else { - return redirect()->guest('login'); - } + return $next($request); } /** * Determine if the user is logged in to any of the given guards. * * @param array $guards - * @return bool + * @return void + * + * @throws \Illuminate\Auth\AuthenticationException */ - protected function check(array $guards) + protected function authenticate(array $guards) { - if (empty($guards)) { - return Auth::check(); + if (count($guards) <= 1) { + Auth::guard(array_first($guards))->authenticate(); + + return Auth::shouldUse($guard); } foreach ($guards as $guard) { if (Auth::guard($guard)->check()) { - Auth::shouldUse($guard); - - return true; + return Auth::shouldUse($guard); } } - return false; + throw new AuthenticationException; } }