auth0 / wordpress
Auth0 WordPress 插件
Requires
- php: ^8.1
- ext-json: *
- ext-openssl: *
- auth0/auth0-php: ^8.10
- psr/cache: ^3.0
Requires (Dev)
- buggregator/trap: ^1
- ergebnis/composer-normalize: ^2
- friendsofphp/php-cs-fixer: ^3
- humbug/php-scoper: ^0.18
- hyperf/event: ^2
- mockery/mockery: ^1
- nyholm/psr7: ^1
- pestphp/pest: ^2
- phpstan/phpstan: ^1
- phpstan/phpstan-strict-rules: ^1
- psr-mock/http: ^1
- rector/rector: 0.17.0
- symfony/cache: ^6
- szepeviktor/phpstan-wordpress: ^1
- vimeo/psalm: ^5
- wikimedia/composer-merge-plugin: ^2
- 5.x-dev
- 5.2.1
- 5.2.0
- 5.1.0
- 5.0.1
- 5.0.0
- 5.0.0-BETA1
- 5.0.0-BETA0
- 4.x-dev
- 4.6.2
- 4.6.1
- 4.6.0
- 4.5.0
- 4.4.0
- 4.3.1
- 4.3.0
- 4.2.0
- 4.1.1
- 4.1.0
- 4.0.0
- 3.11.3
- 3.11.2
- 3.11.1
- 3.11.0
- 3.10.0
- 3.9.0
- 3.8.1
- 3.8.0
- 3.7.3
- 3.7.1
- 3.7.0
- 3.6.2
- 3.6.1
- 3.6.0
- 3.5.2
- 3.5.1
- 3.5.0
- 3.4.0
- 3.3.2
- 3.2.25
- 3.2.24
- 3.2.23
- 3.2.22
- 3.2.21
- 3.2.19
- 3.2.14
- 3.2.10
- 3.2.9
- 3.2.8
- 3.2.5
- 3.2.0
- 3.1.4
- 3.1.3
- 3.1.2
- 3.1.1
- 2.2.0
- 2.1.11
- 2.1.9
- 2.1.8
- 2.1.7
- 2.1.6
- 2.1.5
- 2.1.4
- 2.1.3
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- dev-security-ci-pull_request_target
This package is auto-updated.
Last update: 2024-09-03 17:06:44 UTC
README
Auth0 认证 WordPress 插件
🚀 入门 - 💻 SDK 使用 - 📆 支持政策 - 💬 反馈
概述
Auth0 WordPress 插件用 Auth0 的通用登录体验替换了标准的 WordPress 登录流程。这使得您可以使用 Auth0 的先进功能,如多因素认证、单点登录、无密码、PassKey 等,来保护您的 WordPress 网站。
重要
此插件不是 SDK(软件开发工具包)。其 API 是内部的,不打算让开发者直接扩展。我们不支持更改插件的行为或以任何方式将其集成到本 README 中未概述之外。如果您想构建更广泛的集成,请使用 Auth0-PHP SDK 创建解决方案。
警告
自 2023 年 6 月起,不再支持插件的 v4 版本。我们不再为该版本提供新功能或错误修复。请尽快升级到 v5。
入门
要求
- PHP 8.1+
- WordPress 的最新版本
- 具有表创建权限的数据库凭据
请查阅我们关于特定 PHP 和 WordPress 版本的 支持政策,以及它们何时可能停止支持。
安装
Composer
插件支持通过 Composer 安装,且与 WPackagist 兼容。当使用 Bedrock 时,此方法更受欢迎,但几乎适用于任何 WordPress 安装。
对于 Bedrock 安装,您通常会在根 WordPress 安装目录中运行此命令,但请检查项目维护者提供的文档以获取最佳指导。
对于标准 WordPress 安装,此命令可以从 wp-content/plugins
子目录中运行。
composer require symfony/http-client nyholm/psr7 auth0/wordpress:^5.0
关于 Composer 依赖项的说明
使用 Composer 安装时,插件依赖于 PSR-18 和 PSR-17 库实现的存在。上面的 require
命令包括两个满足这些要求的库(symfony/http-client
和 nyholm/psr7
),但您可以使用任何其他兼容的库。访问 Packagist 以获取 PSR-18 和 PSR-17 提供商的列表。
如果您正在使用 Bedrock 或其他基于 Composer 的配置,您可以尝试不添加任何其他依赖项安装 auth0/wordpress
,因为这些实现可能由其他已安装的包满足。
注意 PHP 标准建议(PSRs)是针对 PHP 库和应用程序的标准,旨在实现更高的互操作性和选择。您可以在此了解有关它们的更多信息以及维护它们的 PHP-FIG 组织:这里。
激活
安装后,您必须在您的 WordPress 网站内激活该插件
- 打开您的 WordPress 控制面板。
- 从侧边栏选择 '插件',然后选择 '已安装插件'。
- 在插件名称下方选择 '激活'。
配置 Auth0
- 登录 Auth0。如果您还没有账户,创建一个账户是免费的。
- 从您的 Auth0 控制面板打开 '应用程序'。,然后选择 '创建应用程序'。
- 选择 '常规 Web 应用程序',然后选择 '创建'。
- 从新创建的应用程序页面,选择设置标签。
请准备以下信息
- 请注意从新创建应用程序的设置页面可用的 域名、客户端 ID 和 客户端密钥。您将在下一步配置插件时需要这些信息。
- 从您的 WordPress 控制面板的常规设置页面,注意您的 WordPress 地址 和 站点地址 URL。我们建议您阅读我们关于 常见的 WordPress URL 问题 的指南。
继续从设置页面配置您的 Auth0 应用程序
- 允许的回调 URL 应包括您 WordPress 网站中
wp-login.php
的 URL。- 在大多数情况下(但并非所有情况),这将是在
/wp-login.php
后附加到您的 WordPress 地址。 - 请确保您的网站配置永远不会缓存此 URL,否则您可能会在登录期间看到“无效状态”错误。
- 在大多数情况下(但并非所有情况),这将是在
- 允许的 Web 原始地址 应包括您的 WordPress 地址和站点地址 URL。
- 允许的注销 URL 应由您的 WordPress 地址组成。
常见的 WordPress URL 问题
- 这些必须是您的访客用来访问您的 WordPress 网站使用的 URL。如果您正在使用反向代理,您可能需要手动配置您的 WordPress 地址和站点地址 URL,以匹配您用来访问网站使用的 URL。
- 确保这些 URL 与您的网站配置的协议匹配。当使用反向代理时,您可能需要更新这些以反映通过 SSL/HTTPS 提供服务。
故障排除
如果您遇到问题,请首先检查您的 Auth0 应用程序是否设置如下
- 应用程序类型 必须设置为 常规 Web 应用程序。
- 令牌端点认证方法 必须设置为 Post。
- 允许的原始地址(CORS) 应该为空白。
向下滚动并展开 "高级设置" 面板,然后
- 在 OAuth
- 确保 JsonWebToken 签名算法 设置为 RS256。
- 检查 OIDC 兼容 是否已启用。
- 在 授权类型
- 确保 隐式、授权码 和 客户端凭据 已启用。
- 您还可以启用 刷新令牌。
配置插件
激活 Auth0 插件后,您将在 WordPress 控制面板的侧边栏中找到一个名为 "Auth0" 的新部分。此部分使您能够以各种方式配置插件。
为了使插件运行,您至少需要配置域名、客户端 ID 和客户端密钥字段。这些信息来自您在先前步骤中创建的 Auth0 应用程序。配置完成后,选择 "启用身份验证" 选项,使插件开始为您处理身份验证。
我们建议在预发布/开发网站上使用单独的Auth0应用程序进行测试,然后再将插件部署到您的生产网站上。
配置WordPress
插件数据库表
插件使用专用数据库表来保证高性能。当插件被激活时,它将使用您为WordPress配置的数据库凭证来创建这些表。
请确保您的配置凭据具有创建新表的适当权限。
Cron配置
插件使用WordPress的后台任务管理器来执行重要的周期性任务。WordPress和Auth0之间的适当同步依赖于此。
默认情况下,WordPress的任务管理器在每次页面加载时运行,这在生产网站上是不推荐的。为了获得最佳性能和可靠性,请确保您已将WordPress配置为使用cron作业来定期运行这些任务。
SDK使用
插件建立在Auth0-PHP之上——Auth0的完整功能PHP SDK,用于身份验证和管理API。
对于自定义WordPress开发,请不要扩展插件本身,因为这不受支持。插件的大多数API都被认为是“内部”的,并且可能会随时间变化,这很可能会破坏任何基于它们的自定义扩展。
相反,请利用插件构建的完整PHP SDK。您可以使用插件的getSdk()
方法获取配置好的SDK实例,以便使用。此方法可以从插件的全局wpAuth0()
辅助函数中调用,该函数返回WordPress插件本身。
<?php $plugin = wpAuth0(); // Returns an instanceof Auth0\WordPress\Plugin $sdk = wpAuth0()->getSdk(); // Returns an instanceof Auth0\SDK\Auth0
有关使用Auth0-PHP SDK进行开发的疑问,请参考Auth0社区,有关问题或功能请求,请参考其相应存储库。有关使用Auth0-PHP SDK的文档和示例也可从其存储库获取。
支持策略
- 我们的PHP版本支持窗口与PHP发布支持时间表相匹配。我们支持PHP版本的结束是它们停止接收安全修复。
- 由于Automattic声明政策是“尽可能进行回滚,但这并不保证”,我们只支持Automattic标记为“积极支持”的最新版本。
Composer和WordPress不提供不兼容版本的升级。因此,我们定期在插件中弃用对已达到生命周期的PHP或WordPress版本的支持。这些弃用不被认为是破坏性更改,并且不会导致主要版本号的增加。
运行不受支持的PHP或WordPress版本的网站将继续运行,但将不会接收更新,直到其环境升级。为了您的安全,请确保您的PHP运行时和WordPress保持最新。
反馈
贡献
我们感谢对此次存储库的反馈和贡献!在您开始之前,请参阅以下内容
提出问题
要提供反馈或报告错误,请在我们的问题跟踪器上提出问题。
漏洞报告
请勿在公共GitHub问题跟踪器上报告安全漏洞。有关披露安全问题的负责任披露计划详细说明了程序。
Auth0 是一个易于实现、适应性强的身份验证和授权平台。
想了解更多,请查看 为什么选择 Auth0?
本项目采用 MIT 许可协议。更多信息请查看 LICENSE 文件。