Make the Authenticate middleware throw an AuthenticationException
This commit is contained in:
parent
e7ff2bfb4d
commit
6dfc0229b2
|
@ -4,6 +4,7 @@
|
||||||
|
|
||||||
use Closure;
|
use Closure;
|
||||||
use Illuminate\Support\Facades\Auth;
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Auth\AuthenticationException;
|
||||||
|
|
||||||
class Authenticate
|
class Authenticate
|
||||||
{
|
{
|
||||||
|
@ -14,40 +15,38 @@ class Authenticate
|
||||||
* @param \Closure $next
|
* @param \Closure $next
|
||||||
* @param string ...$guards
|
* @param string ...$guards
|
||||||
* @return mixed
|
* @return mixed
|
||||||
|
*
|
||||||
|
* @throws \Illuminate\Auth\AuthenticationException
|
||||||
*/
|
*/
|
||||||
public function handle($request, Closure $next, ...$guards)
|
public function handle($request, Closure $next, ...$guards)
|
||||||
{
|
{
|
||||||
if ($this->check($guards)) {
|
$this->authenticate($guards);
|
||||||
return $next($request);
|
|
||||||
}
|
|
||||||
|
|
||||||
if ($request->ajax() || $request->wantsJson()) {
|
return $next($request);
|
||||||
return response('Unauthorized.', 401);
|
|
||||||
} else {
|
|
||||||
return redirect()->guest('login');
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Determine if the user is logged in to any of the given guards.
|
* Determine if the user is logged in to any of the given guards.
|
||||||
*
|
*
|
||||||
* @param array $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)) {
|
if (count($guards) <= 1) {
|
||||||
return Auth::check();
|
Auth::guard(array_first($guards))->authenticate();
|
||||||
|
|
||||||
|
return Auth::shouldUse($guard);
|
||||||
}
|
}
|
||||||
|
|
||||||
foreach ($guards as $guard) {
|
foreach ($guards as $guard) {
|
||||||
if (Auth::guard($guard)->check()) {
|
if (Auth::guard($guard)->check()) {
|
||||||
Auth::shouldUse($guard);
|
return Auth::shouldUse($guard);
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
throw new AuthenticationException;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue