36 lines
1.0 KiB
PHP
36 lines
1.0 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Middleware;
|
|
|
|
use Closure;
|
|
use Illuminate\Auth\AuthenticationException;
|
|
use Illuminate\Http\Request;
|
|
use Symfony\Component\HttpFoundation\Response;
|
|
use Illuminate\Auth\Middleware\Authenticate as Middleware;
|
|
|
|
class Authenticate extends Middleware
|
|
{
|
|
public function handle($request, Closure $next, ...$guards)
|
|
{
|
|
if ($request->user() === null) {
|
|
// Проверяем, не находится ли пользователь на странице входа или в процессе авторизации
|
|
if ($request->is('login') || $request->is('auth/login')) {
|
|
return $next($request);
|
|
}
|
|
|
|
throw new AuthenticationException(
|
|
'Unauthenticated.',
|
|
$guards,
|
|
$request->expectsJson() ? null : $this->redirectTo($request),
|
|
);
|
|
}
|
|
|
|
return $next($request);
|
|
}
|
|
|
|
protected function redirectTo($request): ?string
|
|
{
|
|
return $request->expectsJson() ? null : route('login');
|
|
}
|
|
}
|