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

Next.js 13.4 + NextAuth类型错误:'AuthOptions'无法赋值给'never'

解决Next.js 13.4 App Router中NextAuth的类型错误

错误原因

Next.js App Router的route.ts文件有严格的导出约束:仅允许导出HTTP方法处理函数(如GET、POST)、config或runtime这类特定字段。你当前在路由文件中导出了authOptions变量,这违反了类型检查规则,导致编译失败。

解决方案

将authOptions移到单独的非路由文件中,避免在route.ts里导出多余内容:

  1. 创建lib/auth.ts文件,存放auth配置:
import { AuthOptions } from "next-auth";
import DiscordProvider from "next-auth/providers/discord";

export const authOptions: AuthOptions = {
  providers: [
    DiscordProvider({
      clientId: process.env.CLIENT_ID as string,
      clientSecret: process.env.CLIENT_SECRET as string,
    }),
  ],
  session: {
    strategy: "jwt",
  },
  secret: process.env.NEXTAUTH_SECRET,
};
  1. 修改app/api/auth/[...nextauth]/route.ts,从外部导入配置:
import NextAuth from "next-auth";
import { authOptions } from "@/lib/auth";

const handler = NextAuth(authOptions);

export { handler as GET, handler as POST };

额外说明

后续如果需要在服务器组件、其他API路由中复用authOptions,直接从lib/auth.ts导入即可,既符合App Router的规范,也保证了代码的可维护性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 03:32:13