用途:为 Laravel Web 应用添加基于会话的 Auth0 登录、登出和用户资料展示,使用 auth0/login(Laravel Auth0 SDK)与 Laravel guard 认证集成。
前提条件:Laravel 11+、PHP 8.2+(含 mbstring、openssl、json 扩展)、已安装 Composer,并在 Auth0 中配置 Regular Web Application(非 API)。
主要能力:SDK 自动注册 /login、/callback、/logout 路由;通过覆盖 web guard 使 Laravel 内置 auth 中间件与 auth()->user() 直接可用;认证用户为 StatefulUser 实例,可用 $user->name、$user->email、$user->picture 等属性访问声明,也可用 getAttribute()、jsonSerialize() 显式读取。
使用方式:执行 composer require auth0/login,必要时安装 PSR-18 客户端(如 guzzlehttp/guzzle guzzlehttp/psr7);运行 php artisan vendor:publish --tag=auth0 发布配置;在 .env 设置 APP_URL、AUTH0_DOMAIN、AUTH0_CLIENT_ID、AUTH0_CLIENT_SECRET、AUTH0_AUDIENCE、AUTH0_REDIRECT_URI;在 Auth0 后台填写 Allowed Callback URLs 与 Allowed Logout URLs;在 config/auth.php 将 web guard 的 driver 设为 auth0.authenticator,provider 设为 auth0-provider;用 Route::middleware('auth') 保护路由。
限制与注意:不适用于 Laravel API 的 JWT Bearer 校验(应使用 auth0-laravel-api)、纯 PHP、SPA、Next.js、Node.js、Flask 等场景。AUTH0_DOMAIN 不要带 https:// 前缀;必须设置 AUTH0_AUDIENCE,否则返回不透明令牌导致崩溃;本地开发需用 http://localhost:8000 而非 127.0.0.1,否则出现 Invalid state;需运行 php artisan key:generate 设置 APP_KEY。
其他细节(如自动化脚本、事件、自定义用户模型)暂未在资料中完整提供。