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

NextAuth集成Next.js报错:/api/auth/[...nextauth]未导出默认函数

解决NextAuth报错:"Page /api/auth/[...nextauth] does not export a default function"

这个报错的核心原因是你用了NextAuth v3的旧写法,但当前项目依赖的是NextAuth v4,两者的API路由导出规则不一致。

解决方案步骤:

  1. 修改导出方式
    NextAuth v4不再需要把NextAuth包裹成(req, res)函数导出,直接传入配置对象即可。把你代码里的导出部分替换成:
export default NextAuth(options);

或者更规范的v4写法(推荐):

// [...nextauth].js file
import NextAuth from "next-auth";
import CredentialsProvider from "next-auth/providers/credentials";

// 单独定义authOptions,方便后续在其他组件中引用
export const authOptions = {
  pages: {
    signIn: '/login',
  },
  providers: [
    CredentialsProvider({
      name: 'Credentials',
      credentials: {
        username: { label: "Username", type: "text", placeholder: "jsmith" },
        password: { label: "Password", type: "password" }
      },
      async authorize(credentials, req) {
        const res = await fetch("/your/endpoint", {
          method: 'POST',
          body: JSON.stringify(credentials),
          headers: { "Content-Type": "application/json" }
        });
        const user = await res.json();
        if (res.ok && user) {
          return user;
        }
        return null;
      }
    })
  ]
};

export default NextAuth(authOptions);
  1. 检查依赖版本
    打开你的package.json,确认next-auth的版本是v4.x.x。如果是v3版本,建议升级到v4(v3已停止维护),升级命令:
npm install next-auth@latest
# 或 yarn add next-auth@latest
  1. 确认文件路径与扩展名
  • 确保文件放在pages/api/auth/[...nextauth].js(Next.js Pages Router)或app/api/auth/[...nextauth]/route.js(Next.js App Router),路径错误会导致Next.js无法识别API路由。
  • 如果项目用TypeScript,文件扩展名要改成.ts。

验证修改

重启Next.js开发服务器,访问认证相关端点(比如/login),报错应该会消失。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:55:10