codemonauts/craft-basicauth

Craft CMS 模板中的 HTTP 基本认证插件。

2.0.0 2022-05-04 08:23 UTC

This package is auto-updated.

Last update: 2024-09-04 13:23:49 UTC


README

Icon

这是一个为 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

设置

在控制面板的设置页面上,您可以添加用于认证的凭据。

Screenshot

您可以添加一个无需任何凭据即可访问的 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>

为什么我应该使用此插件而不是网络服务器模块?

您可能会问自己为什么应该使用此插件而不是网络服务器提供的基本认证?以下是一些方面:

  1. 您可以对基本认证完全控制,而无需您的 DevOps 朋友。
  2. 您可以在需要的地方添加 {% basicauth %}:在所有页面的中央布局中,或者仅在具有一些复杂条件的特定模板中。
  3. 您可以使用 Craft 中的条件。例如:{% basicauth require valid if not currentUser %}

codemonauts 献爱