auth0/auth0-php

Auth0认证和管理API的PHP SDK。

安装次数: 13,261,465

依赖者: 68

建议者: 8

安全: 0

星标: 381

关注者: 76

分支: 211

8.11.1 2024-01-11 15:28 UTC

README

auth0-php

Auth0认证和管理API的PHP SDK。

Package Build Status Coverage License

📚 文档 - 🚀 入门 - 💻 API参考 💬 反馈

文档

我们还提供了针对LaravelSymfonyWordPress的定制SDK。如果您使用这些框架之一,请使用相应的SDK以获得最佳集成体验。

入门

要求

请参阅我们的支持策略以获取有关我们PHP版本支持的详细信息。

安装

确保已安装必要的依赖项,然后使用Composer将SDK添加到您的应用程序中

composer require auth0/auth0-php --no-dev

配置Auth0

Auth0仪表板中创建一个常规Web应用程序。请确保“令牌端点认证方法”设置为POST

接下来,在“设置”页面的“应用程序URI”部分下配置您的应用程序的回调和注销URL

  • 允许的回调URL:Auth0在认证期间将重定向到的您的应用程序的URL,例如https://:3000/callback
  • 允许的注销URL:Auth0在用户注销后将重定向到的您的应用程序的URL,例如https://: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 和此 SDK 的更新。

反馈

贡献

我们感谢您对这一仓库的反馈和贡献!在您开始之前,请参阅以下内容

提出问题

要提供反馈或报告错误,请 在我们的问题跟踪器上提出问题

漏洞报告

请勿在公共 GitHub 问题跟踪器上报告安全漏洞。有关披露安全问题的程序,请参阅 负责任披露计划

Auth0 是一个易于实现且可定制的认证和授权平台。
要了解更多信息,请查看 "为什么选择 Auth0?"

本项目采用 MIT 许可证。有关更多信息,请参阅 LICENSE 文件