如果我尝试从
127.0.0.1:8082
或 localhost:8082
访问我的 Next.js 应用程序,它会正常运行。问题是当我想使用我的机器的 IP 地址(例如 http://10.233.xx.xx:8082/
)访问它时,它会抛出错误 Error: no native implementation of WebCrypto is available in current context
。
根据错误消息,这是错误的来源:
> const session = require("iron-session/edge");
const cookieSet = {
cookieName: "cookiename",
password: "mypass",
cookieOptions: {
sameSite: "strict",
maxAge: 3600,
secure: process.env.NODE_ENV === "production",
},
};
我的猜测是,从“iron-session/edge”导入的会话被设计为仅在 Nextjs 的边缘运行时中工作,其中不包括 WebCrypto API(参考:Edge 和 Nodejs 运行时)。 因此,通过使用 Nodejs 运行时,
const session = require("iron-session");
可能会起作用。