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

Next Auth v5未读取basePath求助:Azure AD登录路由异常

NextAuth v5 配置 basePath 解决路由不识别问题

针对你升级到NextAuth v5 beta.18后,配置basePath出现signin路由不读取basePath的问题,试试以下几个精准配置步骤:

  1. 修正next.config.js的basePath格式
    Next.js的basePath要求是字符串类型,不是数组,先把配置改对:

    // next.config.js
    module.exports = {
      basePath: '/ui/abc',
      // 其他原有配置...
    }
    
  2. 在auth.ts里正确配置basePath
    NextAuth v5中,basePath要放在NextAuth初始化的顶层参数里,不是providers数组下方,示例如下:

    // auth.ts
    import NextAuth from "next-auth";
    import AzureAD from "next-auth/providers/azure-ad";
    
    export const { handlers, auth, signIn, signOut } = NextAuth({
      providers: [
        AzureAD({
          clientId: process.env.AZURE_AD_CLIENT_ID,
          clientSecret: process.env.AZURE_AD_CLIENT_SECRET,
          tenantId: process.env.AZURE_AD_TENANT_ID,
        }),
      ],
      // 这里配置basePath,和next.config.js保持完全一致
      basePath: "/ui/abc",
      // 可选:添加回调确保跳转URL自动带上basePath
      callbacks: {
        async redirect({ url, baseUrl }) {
          if (url.startsWith("/")) return `${basePath}${url}`;
          return url;
        },
      },
    });
    
  3. 检查signIn的调用方式
    调用signIn时别硬编码路径,直接用NextAuth提供的方法即可,它会自动拼接basePath:

    // 正确调用示例
    await signIn("azure-ad");
    // 需要指定回调URL的情况
    await signIn("azure-ad", { callbackUrl: "/dashboard" });
    
  4. 重启服务+清缓存
    修改配置后,必须重启Next.js开发服务器,同时清掉浏览器缓存,避免旧路由缓存干扰。

如果还是不行,去Azure AD应用注册里检查重定向URI,要确保包含basePath,比如配置成https://你的域名/ui/abc/api/auth/callback/azure-ad,和实际回调路径完全匹配。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 09:33:11