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

Next-auth signOut按钮用环境变量传callbackUrl失效问题求助

解决方案

问题根源是Next.js客户端组件无法直接访问非NEXT_PUBLIC_前缀的环境变量。默认情况下,Next.js只会将以NEXT_PUBLIC_开头的环境变量注入到客户端代码中,其他变量仅在服务器端可用,所以你当前的AUTH0_SIGNOUT_CALLBACK_URL在客户端组件里是undefined,导致回调URL失效。

解决步骤:

  1. 修改.env.local中的变量名
    将环境变量名加上NEXT_PUBLIC_前缀,确保客户端能读取到:

    NEXT_PUBLIC_AUTH0_SIGNOUT_CALLBACK_URL=http://localhost:3000
    
  2. 更新Nav.jsx中的变量引用
    同步修改代码中的环境变量名称:

    'use client'
    import { signOut } from 'next-auth/react'
    import Link from 'next/link'
    
    const signOutUrl = process.env.NEXT_PUBLIC_AUTH0_SIGNOUT_CALLBACK_URL
    
    const Nav = () => {
      return (
        <nav>
          <button
            type="button"
            onClick={() => signOut({ callbackUrl: signOutUrl })}
            className="outline_btn"
          >
            Sign Out
          </button>
          <Link href="/profile" className="outline_btn">
            Profile
          </Link>
        </nav>
      )
    }
    
    export default Nav
    
  3. 重启开发服务器
    环境变量修改后必须重启Next.js开发服务器,新的变量才能被加载生效。

内容的提问来源于stack exchange,提问作者Nadun Perera

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 03:08:13