csun-metalab/lumen-force-https

为 Lumen 开发的一个小型 Composer 包,通过中间件强制在 URL 中使用 HTTPS

1.0.1 2020-08-12 14:54 UTC

This package is auto-updated.

Last update: 2024-09-26 03:59:07 UTC


README

一个为 Lumen 5.1 及以上版本开发的小型 Composer 包,通过中间件强制在 URL 中使用 HTTPS。

目录

安装

Composer、环境和服务提供者

Composer

要从 Composer 安装,请使用以下命令

composer require csun-metalab/lumen-force-https

环境

现在,将以下行添加到您的 .env 文件中

FORCE_HTTPS=true

这将启用强制功能。

服务提供者

接下来,在 bootstrap/app.php 中注册服务提供者和配置文件,如下所示

$app->configure('forcehttps');
$app->register(CSUNMetaLab\LumenForceHttps\Providers\ForceHttpsServiceProvider::class);

配置文件

如果您在项目根目录中没有 config 目录,请创建它。

为了利用此包中的自定义配置值,将以下代码复制并粘贴到 Lumen 中 config 目录下的名为 forcehttps.php 的文件中

<?php

return [

  /*
    |--------------------------------------------------------------------------
    | Force HTTPS
    |--------------------------------------------------------------------------
    |
    | Whether to force HTTPS on all URLs or not. Default is false.
    |
    */
  'force_https' => env('FORCE_HTTPS', false),

];

?>

中间件安装

最后,在 bootstrap/app.php 中添加对 $app->middleware() 的调用,或修改现有的一个以将其应用于应用程序接收的所有请求

$app->middleware([
   CSUNMetaLab\LumenForceHttps\Http\Middleware\ForceHttps::class,
]);

必需的环境变量

您已在 .env 文件中添加了一个环境变量,以控制应用程序流量使用的协议。

FORCE_HTTPS

是否在所有 URL 上强制使用 HTTPS。默认为 false,以防止在安装后直接强制使用 HTTPS 产生意外问题。

中间件

强制 HTTPS 中间件

此类命名空间为 CSUNMetaLab\LumenForceHttps\Http\Middleware\ForceHttps

中间件执行以下步骤

  1. 检查应用程序配置是否请求强制通过 HTTPS 传输流量
  2. 如果是,它执行以下步骤
    1. 将请求 URI 解析为绝对 URL,以便也可以看到协议
    2. 检查 HTTPS 服务器变量是否为非空值或设置为 off
    3. 如果协议不是 https:,则将其替换为 https: 并返回重定向
  3. 如果不是,则将请求实例传递给管道中配置的下一个中间件

资源

中间件