Make the Authenticate middleware throw an AuthenticationException
This commit is contained in:
parent
e7ff2bfb4d
commit
6dfc0229b2
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue