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

NextJs集成NextAuth遭遇cookies不可迭代错误求助

问题:NextJS 13.4.13集成NextAuth 4.22.1时出现TypeError: cookies is not iterable错误

错误日志

- event compiled client and server successfully in 307 ms (168 modules)
- event compiled client and server successfully (447 modules)
- warn Fast Refresh had to perform a full reload. Read more: https://nextjs.org/docs/messages/fast-refresh-reload
TypeError: cookies is not iterable
    at get [headers map sorted] (node:internal/deps/undici/undici:1844:34)
    at node:internal/deps/undici/undici:1865:43
    at Headers Iterator.next (node:internal/deps/undici/undici:1108:26)
    at toNodeOutgoingHttpHeaders (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/web/utils.js:106:31)
    at invokeRender (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/lib/router-server.js:250:122)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async handleRequest (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/lib/router-server.js:422:24)
    at async requestHandler (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/lib/router-server.js:439:13)
TypeError: cookies is not iterable
    at get [headers map sorted] (node:internal/deps/undici/undici:1844:34)
    at node:internal/deps/undici/undici:1865:43
    at Headers Iterator.next (node:internal/deps/undici/undici:1108:26)
    at toNodeOutgoingHttpHeaders (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/web/utils.js:106:31)
    at invokeRender (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/lib/router-server.js:250:122)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5)
    at async handleRequest (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/lib/router-server.js:422:24)
    at async requestHandler (/Users/123/Talentstark/talentstark/node_modules/next/dist/server/lib/router-server.js:439:13)

项目依赖版本

"dependencies": {
    "@emotion/react": "^11.11.1",
    "@emotion/styled": "^11.11.0",
    "@headlessui/react": "^1.7.16",
    "@heroicons/react": "^2.0.18",
    "@mui/material": "^5.14.3",
    "@prisma/client": "^5.1.1",
    "@types/node": "20.4.8",
    "@types/react": "18.2.18",
    "@types/react-dom": "18.2.7",
    "autoprefixer": "10.4.14",
    "eslint": "8.46.0",
    "eslint-config-next": "13.4.13",
    "next": "13.4.13",
    "next-auth": "^4.22.1",
    "postcss": "8.4.27",
    "react": "18.2.0",
    "react-dom": "18.2.0",
    "tailwindcss": "3.3.3",
    "typescript": "5.1.6"
},
"devDependencies": {
    "prisma": "^5.1.1"
}

问题场景

认证路由为/api/auth/[...nextauth]/route.ts,采用标准GitHub认证配置。


排查与解决步骤

  • 检查NextAuth路由导出方式:App Router下的NextAuth路由必须使用以下导出格式,不能用旧版的export default NextAuth(...):
    import NextAuth from "next-auth"
    import GitHubProvider from "next-auth/providers/github"
    
    export const { handlers, auth, signIn, signOut } = NextAuth({
      providers: [
        GitHubProvider({
          clientId: process.env.GITHUB_ID!,
          clientSecret: process.env.GITHUB_SECRET!,
        }),
      ],
    })
    
  • 验证Session配置:若使用jwt模式,确保session选项未错误修改cookie结构,避免返回非可迭代对象。
  • 降级Node.js版本:该错误与Node内置的undici库兼容性有关,Node 20.x部分版本存在问题,可切换到Node 18.x LTS版本测试。
  • 清除项目缓存:删除.next、node_modules和package-lock.json,重新执行npm install后启动项目,排除缓存异常。
  • 排查自定义Cookie操作:检查项目中是否有middleware或其他代码修改了请求/响应的cookies对象,确保未将其改为非可迭代类型。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 18:05:53