在 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...
}
我正在尝试使用 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...
}