auth0/wordpress

Auth0 WordPress 插件

安装次数: 6,022

依赖者: 0

建议者: 0

安全性: 1

星标: 153

关注者: 60

分支: 96

类型:wordpress-plugin


README

WordPress by Auth0

Auth0 认证 WordPress 插件

License

🚀 入门 - 💻 SDK 使用 - 📆 支持政策 - 💬 反馈

概述

Auth0 WordPress 插件用 Auth0 的通用登录体验替换了标准的 WordPress 登录流程。这使得您可以使用 Auth0 的先进功能,如多因素认证、单点登录、无密码、PassKey 等,来保护您的 WordPress 网站。

重要

此插件不是 SDK(软件开发工具包)。其 API 是内部的,不打算让开发者直接扩展。我们不支持更改插件的行为或以任何方式将其集成到本 README 中未概述之外。如果您想构建更广泛的集成,请使用 Auth0-PHP SDK 创建解决方案。

警告

自 2023 年 6 月起,不再支持插件的 v4 版本。我们不再为该版本提供新功能或错误修复。请尽快升级到 v5。

入门

要求

请查阅我们关于特定 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-18PSR-17 库实现的存在。上面的 require 命令包括两个满足这些要求的库(symfony/http-clientnyholm/psr7),但您可以使用任何其他兼容的库。访问 Packagist 以获取 PSR-18PSR-17 提供商的列表。

如果您正在使用 Bedrock 或其他基于 Composer 的配置,您可以尝试不添加任何其他依赖项安装 auth0/wordpress,因为这些实现可能由其他已安装的包满足。

注意 PHP 标准建议(PSRs)是针对 PHP 库和应用程序的标准,旨在实现更高的互操作性和选择。您可以在此了解有关它们的更多信息以及维护它们的 PHP-FIG 组织:这里

激活

安装后,您必须在您的 WordPress 网站内激活该插件

  1. 打开您的 WordPress 控制面板。
  2. 从侧边栏选择 '插件',然后选择 '已安装插件'。
  3. 在插件名称下方选择 '激活'。

配置 Auth0

  1. 登录 Auth0。如果您还没有账户,创建一个账户是免费的
  2. 从您的 Auth0 控制面板打开 '应用程序'。,然后选择 '创建应用程序'。
  3. 选择 '常规 Web 应用程序',然后选择 '创建'。
  4. 从新创建的应用程序页面,选择设置标签。

请准备以下信息

  • 请注意从新创建应用程序的设置页面可用的 域名客户端 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 文件。