Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

Error: secretOrPrivateKey must be an asymmetric key when using ES256

未关闭
#898 13 条评论 3 个 reaction 已指派 0 人 在 GitHub 查看

还没有人认领这个 Issue。

评估

难度
3/5
预计耗时
1-2 天
新手友好度
35/100
Issue 类型
缺陷
描述清晰度
需要澄清
活跃度
停滞

调研方向

使用 issuer.getPrivateKey() 的值和所示的 ES256 选项,重现 src/app.ts:151 处的调用。跟踪错误经过 node_modules/jsonwebtoken/sign.js:124 的过程,然后比较 sign 接受的密钥值与传递给 verify 的值。当已确定受支持的行为或所需的密钥格式,并由一个有针对性的回归测试或文档覆盖时,即表示完成。

由索引模型根据 Issue 内容生成。

描述

Description

I am unable to sign a jwt by using the private key associated to a Metamask wallet. Ideally I would like to sign a jwt for a verifiable credential by using the private key of the issuer of the credential:

const vcPayload = {
  sub: sub.getDid(),
  nbf: Math.floor(Date.now() / 1000),
  vc: {
    '@context': ['https://www.w3.org/2018/credentials/v1'],
    type: ['VerifiableCredential'],
    credentialSubject: {
      degree: {
        type: 'BachelorDegree',
        name: 'Baccalauréat en musiques numériques'
      }
    }
  }
}

const vcJwt = jwt.sign(vcPayload, issuer.getPrivateKey(), { algorithm: 'ES256' });

const decodedJwt = jwt.decode(vcJwt, { complete: true });
console.log(`Decoded VC: ${JSON.stringify(decodedJwt)}`);

const verifiedJwt = jwt.verify(vcJwt, issuer.getPublicKey(), { algorithms: ['ES256'] });
console.log(`Verified VC: ${JSON.stringify(JSON.stringify(verifiedJwt))}`);

The problem I am encountering is the following one:

Error: secretOrPrivateKey must be an asymmetric key when using ES256
    at module.exports [as sign] (node_modules/jsonwebtoken/sign.js:124:22)
    at main (src/app.ts:151:21)
    at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {stack: 'Error: secretOrPrivateKey must be an asymmetr…ions (node:internal/process/task_queues:95:5)', message: 'secretOrPrivateKey must be an asymmetric key when using ES256'}
Environment

"jsonwebtoken": "9.0.0"

主要语言
JavaScript
星标
18.2k
派生
1.3k
PR 合并指标
30 天内没有已合并 PR

环境准备

  • 没有 Dockerfile 或 Docker Compose 文件
  • 没有 Pull Request 模板
  • 阅读贡献指南

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

auth0/node-jsonwebtoken 的其他 Issue

查看 auth0/node-jsonwebtoken 的全部 Issue

相似的 Issue

更多 JavaScript Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。