用途:在 Laravel API 中校验 Auth0 签发的 JWT 访问令牌,保护接口并检查 scope 或 RBAC 权限。适用于 Laravel 11+、PHP 8.2+ 的无状态 API,不负责签发令牌,也不用于有登录界面的 Web 应用或单页应用。
主要能力:auth:auth0-api 中间件校验 Bearer 令牌签名、签发者和受众,无效请求返回 401;支持 hasScope() 检查 scope 声明、hasPermission() 检查 permissions 声明(需在 Auth0 启用 RBAC);可通过 StatelessUser 读取 sub、email、permissions 等声明。
使用方式:先 composer require auth0/login,必要时安装 PSR-18 客户端,再执行 php artisan vendor:publish --tag=auth0 发布配置。在 Auth0 创建 API 资源,把 AUTH0_DOMAIN、AUTH0_AUDIENCE 写入 .env,并在 config/auth.php 配置 driver 为 auth0.authorizer、configuration 为 api 的 guard。Laravel 11+ 若缺少 routes/api.php,可运行 php artisan install:api 生成。测试时用 php artisan serve 启动服务,curl 请求需带 Accept: application/json 头,否则会返回 302 而不是 401。
限制与注意:必须使用 API 资源而非 Application;AUTH0_DOMAIN 不要带 https://;不要使用 auth0.authenticator(那是给会话型 Web 应用用的);scope 需在 Auth0 API 资源中定义,M2M 令牌不包含 RBAC 权限,只能用于 scope 校验。官方资料未提供具体收费和价格信息。