You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Next.js部署AWS Amplify后NextAuth Signout()重定向至localhost:3000问题

解决Next.js + AWS Amplify登出重定向到localhost的问题
  • 强制覆盖NextAuth的回调与Cookie配置
    在pages/api/auth/[...nextauth].ts(或js)的authOptions里,显式配置signOut回调、默认callbackUrl以及生产环境的Cookie规则,彻底替换localhost相关的残留配置:

    export const authOptions: NextAuthOptions = {
      // 你的其他认证配置(MongoDB等)
      callbacks: {
        async signOut({ callbackUrl }) {
          // 强制使用生产地址作为登出回调
          return process.env.APP_URL || callbackUrl;
        },
        async session({ session }) {
          // 确保session中的地址为生产地址
          session.url = process.env.APP_URL;
          return session;
        },
      },
      // 全局设置默认回调地址
      callbackUrl: process.env.APP_URL,
      // 配置Cookie,避免localhost残留
      cookies: {
        callbackUrl: {
          name: `${process.env.NODE_ENV === 'production' ? '__Secure-' : ''}next-auth.callback-url`,
          options: {
            domain: process.env.APP_URL?.replace(/^https?:\/\//, ''),
            path: '/',
            secure: process.env.NODE_ENV === 'production',
            httpOnly: true,
            sameSite: 'lax',
          },
        },
      },
    };
    
  • 清除部署与浏览器缓存

    • 在AWS Amplify控制台找到对应应用,选择最新部署记录,点击「重新部署此版本」并勾选「清除构建缓存」,确保构建时没有残留旧配置
    • 前端用户端强制刷新页面(Ctrl+Shift+R),并手动删除浏览器中该网站的next-auth.callback-url等相关Cookie
  • 确认Amplify环境变量的构建阶段注入
    检查Amplify的环境变量设置,确保APP_URL和NEXTAUTH_URL是添加到构建变量中,而非仅运行时变量。Next.js在构建时会静态注入环境变量,运行时变量无法覆盖NextAuth的初始配置逻辑。

  • 显式指定SignOut的callbackUrl
    调用signOut函数时务必显式传入生产地址,避免依赖可能被缓存的默认值:

    await signOut({ callbackUrl: process.env.APP_URL });
    

内容的提问来源于stack exchange,提问作者João Textor

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 03:20:16