Создайте простую стражу в laravel

Я пытаюсь реализовать очень простой механизм аутентификации с помощью Laravel.

Мне нужно защитить определенные маршруты, чтобы их можно было просматривать с определенного IP-адреса.

Я хочу сделать это:

if ($_SERVER['REMOTE_ADDR'] != '123.45.67.89') {
    return Redirect::away('some url');
}

Как я могу это реализовать с помощью охранника?

1 ответ

Решение

Вы можете добиться этого, используя промежуточное программное обеспечение, поскольку оно используется для того, что вы пытаетесь сделать.

Создайте новое промежуточное ПО, выполнив php artisan make:middleware SimpleGuardMiddleware. Он будет создан вapp\Http\Middleware\SimpleGuardMiddleware.php.

Затем в файле можно написать что-то вроде этого:

public function handle($request, Closure $next)
{
    if ($request->ip() != '123.45.67.89') {
        return Redirect::away('some url');
    }
    return $next($request);
}

А затем перейдите к app\Http\Kernel.php, обязательно добавьте это в свой protected $routeMiddleware массив.

protected $routeMiddleware = [
    //.. your previous files ...
    'myguard' => SimpleGuardMiddleware.php::class,
];

А затем в своем файле маршрута вы можете сделать что-то вроде

Route::group(['middleware' => 'auth'], function() {
    // your routes here...
}
Другие вопросы по тегам