Docker+Next.js集成Auth.js(v5)时遇无效重定向问题求助
在Docker生产环境部署Auth.js v5 Beta版后登录重定向异常问题
环境与问题概述
- 使用T3栈(tRPC、Auth.js、Prisma、Next.js)
- 升级至带Prisma Adapter的Auth.js v5 Beta版后,使用任意提供商登录时,登录成功后会重定向到Docker内部主机0.0.0.0
- 升级前应用及认证流程完全正常
已做配置与尝试
- 环境变量设置:尝试过
NEXTAUTH_URL和AUTH_URL的多种组合,当前使用AUTH_URL="https://my-production-url.com/api/auth"时,OAuth提供商页面的重定向URL显示正确,但登录成功后的重定向依然错误 - Dockerfile配置(遵循Next.js官方文档):
EXPOSE 3000 ENV PORT 3000 ENV HOSTNAME "0.0.0.0"
- Auth.js核心配置:
export const { handlers: { GET, POST }, auth, } = NextAuth({ pages: { signIn: "/auth/login", error: "/auth/error", signOut: "/auth/logout", verifyRequest: "/auth/verify-request", }, callbacks: { signIn({ user, email }) { // 邮箱提供商仅允许特定域名用户登录 if (email?.verificationRequest) { return !isFakeEmail(user.email!, false); } return true; }, session: ({ session, user }) => ({ ...session, user: { ...session.user, id: user.id, role: user.role, subscribedTill: user.subscribedTill, }, }), }, adapter: PrismaAdapter(db), providers: [ EmailProvider({ server: env.EMAIL_SERVER, from: env.EMAIL_FROM, maxAge: 5 * 60, // 验证链接有效期5分钟 }), DiscordProvider({ allowDangerousEmailAccountLinking: true }), GitHubProvider({ allowDangerousEmailAccountLinking: true }), ], trustHost: true, // 已设置trustHost为true });
- 依赖版本:
"@next-auth/prisma-adapter": "^1.0.7", "next-auth": "^5.0.0-beta.15", "next": "14.1.0",
疑问
是否遗漏了某个关键环境变量?此前在Auth.js的GitHub仓库中找到过相关讨论,但未发现有效解决方案。
内容的提问来源于stack exchange,提问作者user16976770
相关产品推荐
相关产品推荐

