typescript 错误: jwt.解码不是函数

标签 typescript jwt runtime-error

我编写了以下 Typescript 代码来检查 jsonwebtoken 的工作原理。

import * as jwt from "jsonwebtoken";
import * as fs from "fs";

const privateKey = fs.readFileSync("key.pem");
const token = jwt.sign({ foo: "bar" }, privateKey, { algorithm: "RS256" });
const decoded = jwt.decode(token, {complete: true});
const verified = jwt.verify(token, privateKey);

它编译得很好,但是当我尝试运行它时,出现以下错误:

TypeError: jwt.decode is not a function
    at Object.<anonymous> ([path]/src/testjwt2.js:30:21)
    at Module._compile (node:internal/modules/cjs/loader:1205:14)
    at Module._extensions..js (node:internal/modules/cjs/loader:1259:10)
    at Module.load (node:internal/modules/cjs/loader:1068:32)
    at Module._load (node:internal/modules/cjs/loader:909:12)
    at Function.executeUserEntryPoint [as runMain] (node:internal/modules/run_main:82:12)
    at node:internal/main/run_main_module:23:47

Node.js v19.1.0

如果我用jwt.decode函数注释掉该行,它就可以工作。我尝试在网上查找解决方案,很多解决方案涉及循环依赖、错误的函数名称等。代码很简单,我使用 VSCode 的代码完整功能来获取 decode。所以,我对这里发生的事情感到困惑。

提前感谢您提供任何帮助/解决方案。

最佳答案

我在将项目转换为 ESM 时遇到相同的错误 你可以试试这个。 我使用调试器检查了 var ,发现导出缺失,但在嵌套的默认对象中。对我有用;)

jwt.default.decode(token, {complete: true });

关于 typescript 错误: jwt.解码不是函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/75622271/

相关文章:

javascript - 在 Typescript 中迭代数组/JSON 以构建带有子菜单的 Angular 2 模板菜单

javascript - 在 react 中访问全局变量

typescript - 将 Typescript 与 Realm JS 一起使用

jwt - Blazor jwt 从客户端到服务器

c# - mscorlib.dll 中出现类型为 'System.IO.DirectoryNotFoundException' 的未处理异常

android - 0x00000000 处的致命信号 7 (SIGBUS)(代码=2)

c++ - 特定的 c++ 指针/引用错误?

reactjs - 参数类型 'event' 和 'event' 不兼容

ios - 验证 JWT token 签名

jwt - 如何在asp.net core 2.0中允许多个具有不同发行者的JWT