如果使用 IP 地址访问 Next.js 应用程序,则在当前上下文中无法使用 WebCrypto 的本机实现

问题描述 投票:0回答:1

如果我尝试从

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",
  },
};
javascript next.js webcrypto
1个回答
0
投票

我的猜测是,从“iron-session/edge”导入的会话被设计为仅在 Nextjs 的边缘运行时中工作,其中不包括 WebCrypto API(参考:Edge 和 Nodejs 运行时)。 因此,通过使用 Nodejs 运行时,

const session = require("iron-session");
可能会起作用。

© www.soinside.com 2019 - 2024. All rights reserved.