【问题标题】:Create a simple guard in laravel在 laravel 中创建一个简单的守卫
【发布时间】:2020-04-26 01:32:36
【问题描述】:

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

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

我想这样做:

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

如何使用警卫来实现这一点?

【问题讨论】:

  • 阅读the docs,实施您的防护,再次询问您拥有的任何有错误/警告/无法按预期工作的代码

标签: php laravel laravel-middleware laravel-guard


【解决方案1】:

您可以通过使用 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...
}

【讨论】:

  • 谢谢,泰勒。我已经用中间件实现了这个。我可以用警卫来实现吗?
猜你喜欢
  • 2019-04-10
  • 2021-10-22
  • 2019-09-30
  • 1970-01-01
  • 2020-06-18
  • 1970-01-01
  • 2012-06-30
  • 2020-08-07
  • 2016-04-26
相关资源
最近更新 更多