问题标签 [json-web-signature]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
106 浏览

node.js - 我是否需要将有效负载传递给此代码以生成 JWT 令牌?

我想使用 JWT 生成令牌来验证用户。当我使用 postman 使用注册的用户名和密码测试代码时,它返回了JsonWebTokenError: jwt malform. 经过仔细审查,我发现错误来自jwt.verify部分。

  1. 我是否需要传递有效负载值来生成令牌?
  2. 我该如何配置它,以便当用户发出登录请求时,说他正在传递他的用户名和密码以及电子邮件和密码,客户端必须传递客户端身份( [payload + clientID] ),以便服务器知道为谁签署令牌。
  3. 我需要传递任何特殊值Postman Header来测试令牌系统的工作吗?

编码

下面代码的其余部分链接到用于验证用户的权限文件。该错误表明参数没有到达this.validateToken零件。

我编辑了 JWT.(SIGN) 功能如下

0 投票
0 回答
1249 浏览

node.js - 如何使用 square/go-jose 包验证 JWS

我正在使用 node-jws 包(https://www.npmjs.com/package/jws)在 JavaScript 中生成 JSON Web 签名。在标题中,我给出了 crit: ["exp"] 和 exp: someTimeStamp。下面给出的代码片段用于生成 JWS:

我正在使用下面给出的代码片段在 Golang 中验证这个令牌:

如果我在 JS 中生成令牌时没有在标题中给出 crit: ["exp"] ,则 GO 中的上述代码有效。否则,它会给我错误的说法square/go-jose: error in cryptographic primitive

我必须不惜一切代价在标题中使用 crit: ["exp"] 。有没有办法验证这一点?

0 投票
1 回答
1587 浏览

node.js - 可靠地验证 JWS 证书链和域

我正在编写后端代码来验证来自 Google 的 SafetyNet API 的 JWS,在 Node.JS 中。我很惊讶没有找到一个现成的模块,所以我开始研究使用可用库对 JWS 的一些简单验证:

首先,谷歌说这些是所需的步骤:

  1. 从 JWS 消息中提取 SSL 证书链。
  2. 验证 SSL 证书链并使用 SSL 主机名匹配来验证叶证书是否已颁发给主机名 attest.android.com。
  3. 使用证书来验证 JWS 消息的签名。
  4. 检查 JWS 消息的数据以确保它与您的原始请求中的数据相匹配。特别是,确保时间戳已经过验证,并且应用签名证书的随机数、包名称和哈希值与预期值匹配。

(来自https://developer.android.com/training/safetynet/attestation#verify-attestation-response

我发现node-jose提供了一个简单的接口来验证 JWS,它有一个允许嵌入密钥的选项。我试图准确了解这个过程的作用以及它是否足以验证 JWS 的真实性?

使用嵌入式密钥是否确实使用根 CA 验证嵌入式证书链x5c,以及针对证书的签名?还是我需要从 Google 明确获取公钥来单独验证证书?

然后,一个有点相关的问题涉及 Google 用于执行此验证的 API:有一个 APIhttps://www.googleapis.com/androidcheck/v1/attestations/verify?key=...可以执行此确切操作,但它似乎已从 Google 的文档中删除,并且只能在过时的文章和关于 SafetyNet 的 SO 答案中找到参考因为这个似乎表明这个 API 仅用于测试,在生产中你应该自己执行证书验证。有谁知道这个 API 是否适合生产使用?如果每个人都打算手动验证 JWS,我觉得 Google 不会提供更多文档和代码示例有点令人惊讶,因为这个过程很容易出错,并且错误可能会产生严重影响?到目前为止,我只在 Java 中找到了一些 3rd 方示例,但没有从 Google 找到服务器端代码示例。

0 投票
1 回答
671 浏览

security - JWT.io 正在根据空秘密验证令牌并说签名已验证

我对此完全陌生,所以如果它完全愚蠢,请耐心等待我的问题。我正在学习如何使用https://jwt.io验证签名

以下是我正在做的

生成的公钥/私钥对

私钥

公钥

我使用这个网站生成ECDSA-256密钥对,密码为H2

创建 JSON Web 令牌 (JWT)

我使用http://jwtbuilder.jamiekurtz.com/生成令牌

我使用私钥签署了JWT. 以下是令牌

核实

我去网站https://jwt.io下面是我尝试过的视频

智威汤逊问题

问题

当秘密为空时,JWT 如何验证并将其告知为有效签名。我什至还没有提供秘密。

我错过了什么?

0 投票
2 回答
49 浏览

javascript - 任何操作表单用户不断刷新 JsonWebToken

我使用 JsonWebtoken 在我的 web 应用程序中使用 express 在节点 js 中创建访问令牌以进行身份​​验证。

我想为这个令牌定义一个到期日期,但我不知道它如何通过用户执行一些活动来刷新“iat”!基本上,如果用户在自上次活动后的 30 分钟内执行某些活动,我希望到期日期重新开始!

这就是我创建令牌的方式。所以问题是如果用户在 30 分钟内有活动,我如何刷新令牌并发送一个新令牌,以便我们可以确保用户不需要在 30 分钟内登录并且令牌将是有效的?!然后如果用户超过 30 分钟没有执行任何任务,我希望令牌过期!

0 投票
3 回答
5797 浏览

javascript - 令牌无效错误:指定的令牌无效:无法读取未定义的属性“替换”?

我试图解码通过jwt创建的令牌,以便我可以访问我的反应页面中的值并使用它。但由于某种原因,它显示“InvalidTokenError:指定的无效令牌:无法读取未定义的属性'替换'”这个错误,我真的需要帮助,非常感谢任何回答这个问题的人。

react.js中的前端,解码token

后端 node.js

0 投票
0 回答
54 浏览

node.js - JWS 传输最佳实践

我有一个 JWS,有效负载只包含常规数据。我的问题是有一种正确的方法可以在 post 请求中将这个 JWS 发送到正文中吗?我的意思是有特殊的标题或其他关于 JWS 传输的东西。我的身体只是:

0 投票
1 回答
716 浏览

jwt - 创建 JWS 签名时,我必须将 JOSE 标头放在哪里?

我必须创建一个 JWS 签名,并且 JOSE 标头必须如下所示:

我必须在哪里将此标头放在jwt.io网站中,或者有人知道其他用于创建 jws 签名的好网站吗?问题是,当我使用文档提供的标头类型更改 jwt.io 中默认存在的标头时,它在 jwt.io 底部的“无效签名”中说,为什么?

0 投票
1 回答
82 浏览

javascript - PHP和Javascript JWA之间的不同数字签名结果

我正在尝试使用 RSA 256 生成签名,但我在 JavaScript 和 PHP 之间得到了不同的结果。

我的 JavaScript 代码:

输出:

我的PHP代码:

输出:

PHP中的结果是正确的,为什么两者有区别?

0 投票
2 回答
14184 浏览

node.js - 将一些信息分配给生成的令牌后如何解决 JsonWebTokenError “无效签名”?

尝试验证令牌时遇到问题(在生成它之前我向它添加了一些数据之前它工作正常)..但现在它似乎不起作用!

这就是我在用户发送 POST 请求(登录)时生成令牌的方式

这是我的 JWT 验证中间件:

这是一个列出用户的简单示例(使用 JWT 验证中间件!):