该技能用于保护 PHP API 端点,通过 auth0/auth0-php 的 API 模式(SdkConfiguration::STRATEGY_API)校验 JWT 访问令牌并检查 scope,适用于接收访问令牌的无状态 API。前置条件:PHP 8.2+(mbstring、openssl、json 扩展)、已安装 Composer、在 Auth0 中创建的是 API 资源(非 Application);若尚未配置 Auth0,可先使用 auth0-quickstart。不适用场景:带登录登出流程的 PHP Web 应用、Laravel、Symfony、单页应用,以及签发令牌的场景。安装命令:composer require auth0/auth0-php vlucas/phpdotenv guzzlehttp/guzzle guzzlehttp/psr7 "symfony/cache:^7.0"。使用方式:先创建 Auth0 API 资源并配置 .env 中的 AUTH0_DOMAIN 与 AUTH0_AUDIENCE,再初始化 SDK(domain 为裸域名、audience 为数组、可配置 PSR-6 tokenCache 缓存 JWKS),随后编写中间件调用 getBearerToken(server: ['HTTP_AUTHORIZATION']) 校验令牌并按需检查 scope,返回声明数组。主要限制:SDK 不内置中间件需自行封装;必须配置 PSR-18 HTTP 客户端与 PSR-6 缓存;不可硬编码凭据;ID 令牌不能用于 API 鉴权;RS256 下 clientId 可选、clientSecret 仅 HS256 需要;getBearerToken 未找到有效令牌返回 null 而非抛异常。测试可用 php -S localhost:8000 index.php 启动内置服务器,公开端点应返回 200,受保护端点无令牌应返回 401。
auth0-php-api
安全与审计
更新于 10-15 18:46