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

如何为Next-Auth指定BaseUrl?解决子路径认证404问题

解决Next-auth在子路径下的404问题

你的问题核心是Next.js应用部署在/admin子路径下,但next-auth默认使用根路径的API路由,导致请求找不到正确地址。按以下步骤修复:

1. 配置Next.js基础路径

在项目根目录的next.config.js中添加basePath配置,告知Next.js应用的部署子路径:

// next.config.js
module.exports = {
  basePath: '/admin',
}

该配置会让所有页面、API路由自动带上/admin前缀,包括next-auth的接口。

2. 修正NEXTAUTH_URL环境变量

你之前的.env变量存在语法错误(缺少闭合引号),需补充完整并指定正确的API路径:

NEXTAUTH_URL=http://localhost:3000/admin/api/auth

设置完成后必须重启开发服务器,确保环境变量生效。

3. 显式指定next-auth的basePath(可选但推荐)

在pages/api/auth/[...nextauth].ts的配置中,添加basePath选项明确API路由的基础路径:

export default NextAuth({
  basePath: '/admin/api/auth', // 匹配next.config的basePath + API路由前缀
  session: {
    strategy: "jwt",
  },
  providers: [
    CredentialsProvider({
      // ...你的现有配置
    }),
  ],
});

4. 验证请求路径

完成上述配置后,next-auth的请求会自动指向http://localhost:3000/admin/api/auth/providers,而非根路径的/api/auth/providers,404问题即可解决。

另外,signIn调用无需额外修改,next-auth会自动根据basePath调整请求地址。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.19 19:13:14