auth0 / auth0-php
Auth0 身份验证和管理 API 的 PHP SDK。
Requires
Requires (Dev)
- ergebnis/composer-normalize: ^2
- friendsofphp/php-cs-fixer: ^3
- mockery/mockery: ^1
- pestphp/pest: ^2
- phpstan/phpstan: ^1
- phpstan/phpstan-strict-rules: ^1
- psr-mock/http: ^1
- rector/rector: 0.17.6
- spatie/ray: ^1
- symfony/cache: ^4 || ^5 || ^6
- symfony/event-dispatcher: ^4 || ^5 || ^6
- vimeo/psalm: ^5
- wikimedia/composer-merge-plugin: ^2
Suggests
- psr/cache-implementation: (PSR-6 Cache) Improve performance by avoiding making redundant network requests.
- psr/event-dispatcher-implementation: (PSR-14 Event Dispatcher) Observe and react to events when they occur.
- dev-main
- 8.11.1
- 8.11.0
- 8.10.0
- 8.9.3
- 8.9.1
- 8.9.0
- 8.8.0
- 8.7.1
- 8.7.0
- 8.6.0
- 8.5.0
- 8.4.0
- 8.3.8
- 8.3.7
- 8.3.6
- 8.3.5
- 8.3.4
- 8.3.3
- 8.3.2
- 8.3.1
- 8.3.0
- 8.2.1
- 8.2.0
- 8.1.0
- 8.0.6
- 8.0.5
- 8.0.4
- 8.0.3
- 8.0.2
- 8.0.1
- 8.0.0
- 8.0.0-BETA3
- 8.0.0-BETA2
- 8.0.0-BETA1
- 7.x-dev
- 7.9.2
- 7.9.1
- 7.9.0
- 7.8.0
- 7.7.0
- 7.6.2
- 7.6.1
- 7.6.0
- 7.5.0
- 7.4.0
- 7.3.0
- 7.2.0
- 7.1.0
- 7.0.0
- 6.0.0-alpha.2
- 6.0.0-alpha.1
- 5.7.0
- 5.6.0
- 5.5.1
- 5.5.0
- 5.4.0
- 5.3.2
- 5.3.1
- 5.3.0
- 5.2.0
- 5.1.1
- 5.1.0
- 5.0.6
- 5.0.5
- 5.0.4
- 5.0.3
- 5.0.2
- 5.0.1
- 5.0.0
- 4.0.13
- 4.0.12
- 4.0.11
- 4.0.10
- 4.0.9
- 4.0.8
- 4.0.7
- 4.0.6
- 4.0.5
- 4.0.4
- 4.0.3
- 4.0.2
- 4.0.1
- 4.0.0
- 3.4.3
- 3.4.2
- 3.4.1
- 3.4.0
- 3.3.7
- 3.3.6
- 3.3.5
- 3.3.4
- 3.3.3
- 3.3.2
- 3.3.1
- 3.3.0
- 3.2.1
- 3.2.0
- 3.1.0
- 3.0.1
- 3.0.0
- 2.2.3
- 2.2.2
- 2.2.1
- 2.2.0
- 2.1.2
- 2.1.1
- 2.1.0
- 2.0.0
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.6.8
- 0.6.7
- 0.6.6
- 0.6.5
- 0.6.4
- 0.6.3
- dev-security-ci-pull_request_target
This package is auto-updated.
Last update: 2024-09-04 07:17:36 UTC
README
Auth0 身份验证和管理 API 的 PHP SDK。
文档
我们还提供了针对 Laravel、Symfony 和 WordPress 的定制 SDK。如果您使用这些框架之一,请使用定制 SDK 以获得最佳集成体验。
- 快速入门
- 使用会话的应用程序(有状态) — 展示了一个使用会话的传统 Web 应用程序,支持登录、注销和查询用户资料。 完整的源代码也可用。
- 使用访问令牌的 API(无状态) — 展示了一个后端 API,该 API 使用由前端客户端提供的访问令牌授权端点并返回 JSON。 完整的源代码也可用。
- PHP 示例 — 常见场景的代码示例。
- 文档中心 — 了解如何将 Auth0 集成到您的应用程序中。
入门
要求
- PHP 8.1+
- Composer
- PHP 扩展
- 依赖项
请参阅我们的 支持策略 了解我们对 PHP 版本的支持详情。
安装
确保您已安装所需的依赖项,然后使用 Composer 将 SDK 添加到您的应用程序中
composer require auth0/auth0-php --no-dev
配置 Auth0
在 Auth0 控制台 中创建一个 普通 Web 应用程序。请确保“令牌端点认证方法”设置为 POST
。
接下来,在“设置”页面的“应用程序 URI”部分配置您的应用程序的回调和注销 URL
- 允许的回调 URL:Auth0 在身份验证期间重定向到的应用程序 URL,例如,
http://localhost:3000/callback
。 - 允许的注销 URL:Auth0 在用户注销后重定向到的应用程序 URL,例如,
http://localhost:3000/login
。
注意 域、客户端 ID 和 客户端密钥。这些值将在以后使用。
将登录添加到您的应用程序
创建一个配置有您的 Auth0 域、Auth0 应用客户端 ID 和密钥的 SdkConfiguration
实例。使用 openssl rand -hex 32
生成一个足够长的随机字符串作为您的 cookieSecret
。创建一个新的 Auth0
实例并将配置传递给它。
use Auth0\SDK\Auth0; use Auth0\SDK\Configuration\SdkConfiguration; $configuration = new SdkConfiguration( domain: 'Your Auth0 domain', clientId: 'Your Auth0 application client ID', clientSecret: 'Your Auth0 application client secret', cookieSecret: 'Your generated string', ); $auth0 = new Auth0($configuration);
使用 getCredentials()
方法检查用户是否已认证。
// getCredentials() returns null if the user is not authenticated. $session = $auth0->getCredentials(); if (null === $session || $session->accessTokenExpired) { // Redirect to Auth0 to authenticate the user. header('Location: ' . $auth0->login()); exit; }
完成认证流程并通过调用 exchange()
获取令牌。
if (null !== $auth0->getExchangeParameters()) { $auth0->exchange(); }
最后,您可以使用 getCredentials()?->user
获取关于已认证用户的信息。
print_r($auth0->getCredentials()?->user);
完成了!您已成功使用 Auth0 认证了第一个用户! 从这里,您可以尝试跟随我们的快速入门指南,或浏览我们的示例以获取更多见解和指导。
如果您有任何问题,Auth0 社区 是一个询问问题和获得帮助的绝佳资源。
不受信任来源的输入
如果您的应用程序接受来自不受信任来源的输入(例如 HTTP 请求的查询参数),请确保您正在遵循数据验证和清理的最佳实践。确保提供给 SDK 的任何数据有效且安全是您应用程序的责任。有关更多信息,请参阅OWASP 数据验证备忘单。
API 参考
支持政策
我们的支持周期与PHP 发布支持计划相一致。
当 PHP 版本达到生命周期的结束阶段并停止从 PHP 基金会接收安全补丁时,我们将停止支持 PHP 版本。请确保您的环境保持最新,以便您可以继续接收 PHP 和此 SDK 的更新。
反馈
贡献
我们感谢您对本次仓库的反馈和贡献!在您开始之前,请参阅以下内容
提出问题
要提供反馈或报告错误,请在我们的问题跟踪器上提出问题。
漏洞报告
请勿在公共 GitHub 问题跟踪器上报告安全漏洞。有关披露安全问题的负责任披露计划详细说明了程序。
Auth0 是一个易于实现且可定制的身份验证和授权平台。
要了解更多信息,请查看“为什么选择 Auth0?”
本项目采用 MIT 许可证。有关更多信息,请参阅LICENSE 文件。