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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • plsql直接连接远程数据库_plsql远程连接oracle

    plsql直接连接远程数据库_plsql远程连接oracle前言每次安装Oracle以后,都会出现使用plsql连接不上的问题!多次重启电脑、重装系统的磨人经历之后,终于做出这么一篇文章,希望能帮助广大技术人员减少一些时间,顺利进行连接。注:也可以用plsql连接远程数据库(只要有oracle的network\admin\tnsnames.ora就行)。首先下载64位oracle以及32位轻量级客户端(注意版本的对应,我用的是11g的oracl……

    2022年10月20日
    1
  • Java最新JDK和API下载(持续同步更新于官网)

    Java最新JDK和API下载(持续同步更新于官网)Java最新JDK和API下载(持续同步更新于官网)提供涵盖所有主流操作系统(包括Windows、Linux、MacOS等)的Java最新稳定版JDK和对应API的下载以下所有JavaJDK的安装包、压缩包(免安装版)以及对应的API,均直接来自官网,没有添加其它任何额外内容;旨在便捷地获取最新版的JavaJDK(避免因地域原因被限制访问,因网络原因无法稳定有效下载等情况)更新时间:2021年3月17日…

    2022年7月26日
    19
  • 博客日记

    博客日记博客日记 一直想搭建好自己的网站,可是都没有坚持下去。可能对于自己时没有压力的创作,或者是说在自己觉得不好创作的时候直接一把删除是很放松的,这也导致了我从2019年开始弄到现在一个网站也没有坚持下来,就是因为自己的感受到的*删库*的成本太低了,哈哈没有办法,现在重新开始买了服务器买了域名,去备案,结果确实自己的备案被驳回来了,原因就是我的备案信息不正确。。。腾讯的客服回电话说的是比对没有任何问题,但是就是信息比对不正确,我也很迷。现在要重新备案,惨淡的八九天又要来了,不知道粤局

    2022年4月28日
    33
  • Java操作MongoDB

    Java操作MongoDB

    2022年3月12日
    64
  • 【幅频均衡带通滤波器】基于FPGA的幅频均衡带通滤波器的设计[通俗易懂]

    【幅频均衡带通滤波器】基于FPGA的幅频均衡带通滤波器的设计[通俗易懂]1.软件版本matlab2013b,quartusii121.2.本算法理论知识带通滤波器在数字幅频均衡功率放大器中一个重要的组成部分,在介绍带通滤波器之前,我们首先来详细介绍一下数字幅频均衡功率放大器。本系统要求的指标为:本题要求在输入电压有效值为5mV的条件下,放大倍数达到400倍。而且20Hz到20kHz衰减不能超过1dB。-1dB转化为信号幅值变化为11%,可以说指标要求很高。我们可以选择使用PGA或AD620实现这一指标。整个…

    2025年8月26日
    8
  • 新版CCNP-SWITCH笔记

    新版CCNP-SWITCH笔记

    2021年8月8日
    53

发表回复

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

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