crypto.getCurves 未定义

crypto.getCurves is undefined

我正在尝试使用名为 'openid-client' 的 oauth 帮助程序库。我收到一条错误消息,内容为“(TypeError): getCurves is not a function”部分。我四处寻找,发现 getCurves 是 node.js 'crypto'.

的内置模块的一部分

如果我 console.log(typeOf(crypto.getCurves)) 我得到 undefined。如果我 console.log(crypto) 我看到 crypto 有很多可用的方法,但 getCurves 不在其中。

我是我的 macbook 上的 运行 节点,我的项目是一个准系统 npx create-react-app 应用程序,安装了 openid-client。

节点文档概述了一种确定加密支持是否不可用的方法,但这似乎并不表示加密对我不可用。

我不确定为什么我的节点加密版本没有 getCurves。有没有办法安装正确的版本?由于 OS,我遇到了某种加密限制吗?任何帮助表示赞赏。

正如你所说,crypto是一个内置模块,这意味着它的功能取决于你安装的node.js版本(你可以通过node -v查看来自 shell 或在运行时通过 console.log(process.version)

Node.js API docsgetCurves() 是在 v2.3.0 中添加的,所以请确保您的节点比那个更新。

node-openid-client 使用的是 API,它由 Node 提供,在浏览器中缺失。

Node 被 CRA 用作开发工具。应用程序本身在浏览器中是 运行,无法访问 Node 的 API-s,因此 CRA 使用哪个 Node 版本并不重要。

构建时,应用程序是一组 JS 文件,可以直接由 Web 服务器(例如 Nginx)提供服务,而无需使用 Node。

因此,此库不能与 CRA 应用程序一起使用。

https://github.com/panva/node-openid-client/issues/218