用途:为部署在 Vercel 上的 Next.js 应用提供认证集成指导,覆盖 Clerk、Descope 和 Auth0 三个身份认证服务,包含安装、中间件、路由保护与会话读取方式。
主要能力与用法: Clerk(推荐,Vercel Marketplace 原生集成,自动注入环境变量并统一计费,SDK 为 @clerk/nextjs v7)。通过 vercel integration add clerk 安装,会提供 CLERK_SECRET_KEY 与 NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY;再执行 npm install @clerk/nextjs。用 clerkMiddleware() 配置 middleware.ts,可跳过静态资源并始终匹配 API 路由;用 createRouteMatcher 与 await auth.protect() 保护指定路由;支持 frontendApiProxy 将 Frontend API 代理到自有域名;在 app/layout.tsx 用 ClerkProvider 包裹;用 <SignIn />、<SignUp /> 提供登录注册页并配置 NEXT_PUBLIC_CLERK_SIGN_IN_URL、NEXT_PUBLIC_CLERK_SIGN_UP_URL;服务端用 currentUser()、客户端用 useUser() 读取用户,API 路由用 await auth() 获取 userId。 Descope 也支持 Vercel Marketplace,安装 @descope/nextjs-sdk,用 AuthProvider 与 authMiddleware 配置,登录页使用 <Descope flowId="sign-up-or-in" />。 Auth0 使用 @auth0/nextjs-auth0,通过 Auth0Client 初始化,需配置 AUTH0_SECRET、AUTH0_BASE_URL、AUTH0_ISSUER_BASE_URL、AUTH0_CLIENT_ID、AUTH0_CLIENT_SECRET,并用 auth0.middleware 与 auth0.getSession() 处理会话。
适用场景:需要快速接入登录、无密码或社交登录,以及企业级 SSO/SAML 与多租户身份管理的 Next.js 项目。
限制与变更:Clerk Core 3(2026 年 3 月)存在破坏性变更,如 auth() 变为异步、需使用 await auth.protect()、clerkClient() 变为异步、authMiddleware() 移除、@clerk/types 弃用、ClerkProvider 需放在 body 内等;升级 CLI 为 npx @clerk/upgrade,要求 Node.js 20.9.0+。其他限制资料未提供。