在 laravel 中创建一个简单的守卫

Create a simple guard in laravel

我正在尝试使用 Laravel 实现一个非常简单的身份验证机制。

我需要保护某些路由,以便可以从特定 IP 地址查看它们。

我想这样做:

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

如何用守卫实现这个?

您可以通过使用 middleware 来实现此目的,因为它已用于您要执行的操作。

通过 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...
}