Laravel 5 如何实现网站在维护模式下允许指定 IP 用户访问(白名单)

Laravel 5 如何实现网站在维护模式下允许指定 IP 用户访问(白名单)

为了测试需要,有时候需要在网站处于维护模式下允许特定IP访问网站,在 Laravel 中,这可以通过为维护模式编写自定义中间件来实现。

默认情况下,Laravel 使用 CheckForMaintenanceMode 中间件来判断网站是否处于维护模式并进行相应处理,该中间件的 handle() 方法定义如下:

public function handle($request, Closure $next){
    if ($this->app->isDownForMaintenance()) {
        throw new HttpException(503);
    }

    return $next($request);
}

我们将使用 Artisan 命令创建新的中间价来替代这一中间件:

php artisan make:middleware CheckForMaintenanceMode

这样会在 app/Http/Middleware 目录下生成一个 CheckForMaintenance.php 文件。

打开该文件,编辑其 handle() 方法如下:

public function handle($request, Closure $next){
    if ($this->app->isDownForMaintenance() &&
        !in_array($request->getClientIp(), ['123.123.123.123', '124.124.124.124']))
    {
        return response('Be right back!', 503);
    }

    return $next($request);
}

这样,上述代码中指定的 IP 地址即使在网站处于维护模式,依然可以访问网站。

接下来我们只需要将 Laravel 默认的 CheckForMaintenanceMode 中间件替换成我们刚刚创建的中间件即可。打开 app/Http/Kernel.php 将如下这行代码:

Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode::class

替换成:

App\Http\Middleware\CheckForMaintenanceMode::class

好了,大功告成,去试试看是否OK吧。当然,你需要将代码中的 IP 替换成你自己的 IP,为了方便修改,还可以将这些 IP 地址放到配置文件中。

https://laravelacademy.org/post/2496.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/112633.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • PreparedStatement类详解以及案例

    PreparedStatement类详解以及案例一:jdbc(1)注册驱动(2)获得链接:(3)获得sql容器:Statement:(4)执行sql语句:(5)查询操作,需要遍历结果集:(6)关闭资源:Statement:存在的弊端,可以被sql注入:所以实际开发是不在地用的**PreparedStatement:类:**作用:(1)带有预编译的功能:(2)效率高:(3)防止sql注入:传统…

    2022年5月1日
    51
  • python tkinter窗口美化_jquery进度条插件

    python tkinter窗口美化_jquery进度条插件前言在我们进行自动化测试的时候,用例往往是成百上千,执行的时间是几十分钟或者是小时级别。有时,我们在调试那么多用例的时候,不知道执行到什么程度了,而pytest-sugar插件能很好解决我们的痛点。

    2022年7月29日
    3
  • JS弹出模态窗口下拉列表特效

    效果体验:http://hovertree.com/texiao/js/20/或者扫描二维码在手机体验:点击选择城市后,在弹出的层中的输入框,输入英文字母h,会有HoverTree和Hewenqi

    2021年12月22日
    41
  • pip的安装与卸载「建议收藏」

    前言我个人的理解是,pip是一种工具,可以帮助用户安装卸载一些需要的安装包,非常的简单实用,类似于yum下面介绍的是使用系统自带的python来安装pip。安装方法一sudoaptinstallpython-pip方法二wgethttps://bootstrap.pypa.io/get-pip.py#科学上网pythonget-pip.pypyth…

    2022年4月5日
    53
  • 软件工程 毕业设计题目汇总表_新颖的软件工程毕业设计题目

    软件工程 毕业设计题目汇总表_新颖的软件工程毕业设计题目软件工程毕业设计题目汇总【不断更新中】1.微信小程序校园表白墙微信小程序2.房屋租赁管理系统3.航空售票管理系统4.高校会议室管理系统5.高校就业管理系统6.失物招领系统7.图书销售系统8.微信小程序商城系统9.微信小程序资料分享系统10.微信小程序校园点歌系统11.校园资料分享系统12.电影网站系统13.人事管理系统14.视频教学网站15.网…………

    2022年10月21日
    0
  • 足迹地图 搜索jvectormap

    足迹地图 搜索jvectormap

    2021年10月28日
    41

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号