Next.js14中Clerk中间件afterAuth始终检测未登录的问题求助
问题:Next.js 14 集成 Clerk 时中间件无法检测用户状态,导致循环重定向
在 Next.js 14 项目中配置 Clerk 时遇到异常:
- 中间件的
afterAuth方法里调用auth.userId返回null,触发重定向到/sign-in路由; - 进入
/sign-in后又自动重定向回根路由,形成循环; - 组件中能正常识别用户已登录状态,但中间件无法获取
userId、session等用户信息。
中间件核心代码片段:
... afterAuth(auth, req, _) {} ...
打印的 auth 对象内容如下:
{ sessionClaims: null, sessionId: null, session: null, userId: null, user: null, actor: null, orgId: null, orgRole: null, orgSlug: null, orgPermissions: null, organization: null, getToken: [Function: getToken], has: [Function: has], debug: [Function], isPublicRoute: false, isApiRoute: false }
项目相关信息:
- 已遵循 Clerk 官方教程配置;
- 使用
src目录结构,中间件文件位于/src/middleware.ts; - 同时集成了 tRPC。
请问有没有人遇到过相同的问题?
内容的提问来源于stack exchange,提问作者Ilyas Adiyasa
相关产品推荐
相关产品推荐

