codemonauts / craft-basicauth
Craft CMS 模板中的 HTTP 基本认证插件。
2.0.0
2022-05-04 08:23 UTC
Requires
- ext-json: *
- craftcms/cms: ^4.0.0-alpha.1
- symfony/http-foundation: ^5.3.1
This package is auto-updated.
Last update: 2024-09-04 13:23:49 UTC
README
这是一个为 Craft CMS 提供模板内 HTTP 基本认证(BasicAuth)的插件。
要求
- Craft CMS >= 4.0.0
安装
打开您的终端并转到您的 Craft 项目
cd /path/to/project
composer require codemonauts/craft-basicauth
./craft install/plugin basicauth
Apache
如果您使用 Apache 来托管您的 CraftCMS,您必须告诉 Apache 将 Authorization
头(包含基本认证数据)传递给 PHP(参见文档)。否则,Craft 将永远看不到任何凭据,并且会继续显示输入用户名和密码的对话框。这可以在 Apache 配置文件中直接设置,或在您的 .htaccess
文件中设置。
CGIPassAuth on
设置
在控制面板的设置页面上,您可以添加用于认证的凭据。
您可以添加一个无需任何凭据即可访问的 IP 地址和子网(v4 和 v6)列表。使用CIDR 表示法表示子网。
这些设置支持启用项目配置。
{% basicauth %} 标签
在您的模板中,您可以要求 BasicAuth
{% basicauth require valid env "stage" %}
参数
{% basicauth %}
标签支持以下参数:
require
指定要进行的检查类型。您可以对单个 user
、用户 group
、任何 valid
用户进行检查,也可以接受提供的任何凭据。
{# require a single user #} {% basicauth require user "bob" %} {# require the user to be a member of a group #} {% basicauth require group "admins" %} {# accept any valid credentials #} {% basicauth require valid %} {# accept any credentials without checking them #} {% basicauth require any %}
此参数是 必需的。
site
指定要进行的认证的站点处理程序。仅在当前站点处理程序与指定的相同时,才强制执行认证。
{# require the user "bob" if the current site handle is "acme" #} {% basicauth require user "bob" site "acme" %}
env
指定要进行的认证的环境。仅在当前环境与指定的相同时,才强制执行认证。
{# require the user to be a member of the group "customer" if the current environment is "stage" #} {% basicauth require group "customer" env "stage" %}
if
只有当满足特定条件时,才激活 BasicAuth。
{% basicauth require valid if craft.app.request.isMobileBrowser() %}
全局变量
此插件提供了两个全局变量,包含用户的凭据
<p>Hello {{ basicAuthUsername }}!</p> <p>Your password is: {{ basicAuthPassword }}</p>
为什么我应该使用此插件而不是网络服务器模块?
您可能会问自己为什么应该使用此插件而不是网络服务器提供的基本认证?以下是一些方面:
- 您可以对基本认证完全控制,而无需您的 DevOps 朋友。
- 您可以在需要的地方添加
{% basicauth %}
:在所有页面的中央布局中,或者仅在具有一些复杂条件的特定模板中。 - 您可以使用 Craft 中的条件。例如:
{% basicauth require valid if not currentUser %}
由 codemonauts 献爱