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

Next.js14集成Auth.js与PostgreSQL时遇Edge Runtime不支持crypto模块错误

解决"The edge runtime does not support Node.js 'crypto' module"错误

问题概述

集成Auth.js与数据库管理角色时触发错误:

"The edge runtime does not support Node.js 'crypto' module"

移除数据库集成后问题消失,更换其他数据库或ORM仍出现相同报错。

相关代码

auth.ts

import NextAuth from "next-auth"
import PostgresAdapter from "@auth/pg-adapter"
import { Pool } from "pg"

import Google from "next-auth/providers/google"
 
const pool = new Pool({
  host: process.env.DATABASE_HOST,
  user: process.env.DATABASE_USER,
  password: process.env.DATABASE_PASSWORD,
  database: process.env.DATABASE_NAME,
  max: 20,
  idleTimeoutMillis: 30000,
  connectionTimeoutMillis: 2000,
})
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PostgresAdapter(pool),
  providers: [Google],
})

middleware.ts

export { auth as middleware } from "@/auth";

错误原因

Next.js Middleware默认运行在Edge Runtime环境,而你使用的数据库客户端(如pg)或其依赖库调用了Node.js专属的crypto模块——该模块在Edge Runtime中无法使用。同时,Auth.js的路由处理器默认也会采用Edge Runtime,结合数据库适配器后就会触发此错误。

解决方案

方案1:强制Auth.js路由使用Node.js Runtime(推荐)

在Auth.js的路由文件(通常为app/api/auth/[...nextauth]/route.ts)中添加运行时配置,指定使用Node.js环境:

export const runtime = "nodejs";
export { handlers } from "@/auth";

此方案无需修改现有数据库客户端,直接让Auth.js的认证逻辑在支持crypto模块的Node.js环境中运行。

方案2:改用Edge兼容的数据库工具

若需保留Edge Runtime特性,可替换为支持Edge环境的数据库客户端或ORM,例如:

  • 使用@vercel/postgres(Vercel官方Postgres客户端,原生兼容Edge)
  • 使用Drizzle ORM搭配Edge兼容驱动

示例:用@vercel/postgres适配Auth.js

import NextAuth from "next-auth"
import PostgresAdapter from "@auth/pg-adapter"
import { sql } from "@vercel/postgres"

import Google from "next-auth/providers/google"
 
export const { handlers, auth, signIn, signOut } = NextAuth({
  adapter: PostgresAdapter(sql),
  providers: [Google],
})

方案3:调整Middleware运行时(不推荐)

仅在必要时考虑将Middleware改为Node.js Runtime(会失去Edge Runtime的性能优势),在middleware.ts顶部添加:

export const runtime = "nodejs";

总结

优先选择方案1,无需大幅修改代码即可解决问题;若需Edge Runtime特性,则采用方案2更换兼容的数据库工具。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 07:35:05