humanmade / php-basic-auth
为 HM 开发和测试环境提供的 PHP 基本认证。
Requires
- composer/installers: ^1.7.0
Requires (Dev)
- humanmade/coding-standards: ^1.1.1
- phpunit/phpunit: ~7.5
- yoast/phpunit-polyfills: ^1.0
README
PHP Basic Auth
为 Human Made 开发和测试环境提供的基本 PHP 认证。
安装和设置
Composer 文件配置为假定您希望与其他 WordPress 必须使用的插件一起安装此包。以下设置说明假定您所有的 composer 必须使用的插件都存储在主 /mu-plugins/vendor
目录中,并且您正在使用 loader.php
文件来加载它们。如果您的环境不同,您可能需要调整配置。
安装和设置完成后,在“常规设置”页面上将存在一个覆盖默认基本认证设置(由环境检测)的选项。此选项允许您从 WordPress 应用程序中禁用开发或测试环境的基本认证。默认情况下,如果未保存设置,则将检测环境并勾选此选项。
步骤 1
通过 composer
安装插件。
composer require humanmade/php-basic-auth
步骤 2
将 'vendor/php-basic-auth/plugin.php'
添加到 /mu-plugins
目录根目录下的 loader.php
文件中的必须使用插件数组中。请确保它是数组中的 第一个 项。
最终结果应类似于以下内容
<?php /** * Plugin Name: HM MU Plugin Loader * Description: Loads the MU plugins required to run the site * Author: Human Made Limited * Author URI: http://hmn.md/ * Version: 1.0 * * @package HM */ if ( defined( 'WP_INSTALLING' ) && WP_INSTALLING ) { return; } // Plugins to be loaded for any site. $global_mu_plugins = [ 'vendor/php-basic-auth/plugin.php', /* ... other must-use plugins here ... */ ];
步骤 3
在您的项目中定义常数 HM_BASIC_AUTH_USER
和 HM_BASIC_AUTH_PW
,就像在 wp-config.php
文件中定义一样。这可以是您的主要 wp-config.php
文件或单独的 .config/constants.php
文件。
注意:虽然不是必需的,但在定义 HM_BASIC_AUTH_USER
和 HM_BASIC_AUTH_PW
之前最好检查您是否处于开发环境,以防止在所有环境中定义常数声明。这增加了防止基本认证意外加载到生产环境中的额外保护层。
您还可能希望禁用本地环境中的基本认证。
您的常数声明应类似于以下内容
// Check if we're in a dev environment but not local. if ( // HM_DEV is defined and true. ( defined( 'HM_DEV' ) && HM_DEV ) && // HM_LOCAL_DEV is either undefined or false. ( ! defined( 'HM_LOCAL_DEV' ) || defined( 'HM_LOCAL_DEV' ) && ! HM_LOCAL_DEV ) ) { // Set Basic Auth user and password for dev environments. define( 'HM_BASIC_AUTH_USER', 'myusername' ); define( 'HM_BASIC_AUTH_PW', 'mypassword' ); }
步骤 4(可选)
如果您不希望在本地环境中加载基本认证检查,并且您尚未在 wp-config-local.php
文件中定义 HM_LOCAL_DEV
,则现在应该这样做。
/** * Set the environment to local dev. */ defined( 'HM_LOCAL_DEV' ) or define( 'HM_LOCAL_DEV', true );
您还应在 wp-config-local.sample.php
文件中添加这些行。
变更日志
1.1.6
- 修复单元测试
- 更新 composer 测试脚本以使用 composer 安装的 phpunit 版本
- 如果凭证未定义则提前退出
- 允许生产环境可能启用认证
1.1.5
- 修复了当凭证已设置时忽略
hmauth_filter_dev_env
的错误。 - 将 Chrome 和 Firefox 中的提示截图添加到说明文件中。
1.1.4
- 添加了对
WP_INSTALLING
的排除,这导致 Altis 健康检查失败。
1.1.3
- 向
is_development_environment
检查添加了动作钩子,以便在检查环境之前添加动作。
1.1.2
- 需要
composer/installers
,以便可以定义自定义安装路径。
1.1.1
- 修复了当选项未设置时环境设置被短路的问题。
1.1
- 将管理员设置的逻辑从检查是否禁用基本身份验证改为检查是否启用基本身份验证,并默认为基于环境的设置。
- 添加了一个
is_development_environment
函数,该函数包括对HM_ENV_TYPE
的额外检查,以及可以由过滤器添加的任意定义。 - 将“基本领域”更新为使用站点名称而不是“访问被拒绝”。
- 如果以下 WordPress 常量中任何一个是定义并为 true,则禁用基本身份验证:
WP_CLI
、DOING_AJAX
、DOING_CRON
。 - 添加了单元测试。
- 添加了 Travis CI 集成。
1.0
- 初始发布。
致谢
由 Human Made 创建,强制进行身份验证以查看开发和测试环境,同时允许这些环境在不登录状态下查看。
由 Chris Reynolds 维护。
由 Human Made 用 ❤️ 制作。