繁体   English   中英

ES6导入为JWT

[英]ES6 imports for JWT

我正在制作一个 nodeJS web 应用程序,我正在使用 JWT 进行身份验证。 我所有的工作都在 ES6 模块中,我想以相同的方式导入 JWT,但显然 package 还不支持它。我不能使用旧的 require() 格式,因为它会抛出错误,因为我已经将其设置为我的 package.json 中的模块。 有没有办法解决这个问题,还是我必须完全找到另一个图书馆?

编辑:我已经解决了解构问题,但它仍然无法正常工作。 显然它根本找不到模块。 我确保 package 实际上已安装和更新,但仍然无法正常工作

错误 [ERR_MODULE_NOT_FOUND]:找不到从 /path/to/file.js 导入的 package 'jsonwebtoken'

import jwt from ' jsonwebtoken'
const { sign } = jwt

class sampleClass {

   static func(user) {
      return sign(
            {
                _id: user._id,
                name: user.name,
            },
            'sample key',
            {
                expiresIn: '7d',
            },
      )
   }

}

你需要导入它然后像这样分配它

 import jwt from 'jsonwebtoken'; const { sign, verify } = jwt; const token = sign({"d":"dd"}, "secret", {expiresIn: 300}) console.log(token); const verifycode = verify(token, "secret"); console.log(verifycode);

你能试试吗:

  1. 创建文件夹
  2. 执行npm init
  3. 创建文件app.js
  4. 安装 json web 令牌npm i jsonwebtoken
  5. Go 到package.json并添加"type": "module"
  6. 在您的app.js中写入: import jwt from "jsonwebtoken"
  7. 执行它: node --experimental-modules app.js

如果您收到错误,请告诉我

如果您使用的是 jwt v8,只需以这种方式导入 jsonwebtoken:

import * as jwt from 'jsonwebtoken'

要么

import { sign, decode, verify } from 'jsonwebtoken'

您在import jwt from ' jsonwebtoken'中有额外的空间

应该只是import jwt from 'jsonwebtoken'

我刚刚测试过,它在我的电脑上运行良好

我正在使用 typescript 编写我的节点服务器和 jwt 实现。

这是我终端上的建议:

尝试npm i --save-dev @types/jsonwebtoken如果它存在或添加一个包含`declare module 'jsonwebtoken'的新声明(.d.ts)文件;

我刚刚输入: npm i --save-dev @types/jsonwebtoken

然后在我的文件中添加了导入: import jwt from "jsonwebtoken"

希望有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM