问题标签 [json-web-token]

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 投票
0 回答
1326 浏览

node.js - MEANJS:SocketIO 中的 JWT 身份验证

情况

我在我的应用程序中使用框架MEAN.JS

对于这个应用程序的聊天,我正在使用实时 SocketIO

在这个应用程序中,有2 种登录方式:

  • 本地:登录后,服务器返回用户对象

  • 另一个社交网络 OAuth 2.0:登录后,服务器重定向到主页/#!/

我也在用:

我想要的是?

  • 我想通过JSON Web TokenSocketIO中的用户进行身份验证以进行聊天。 JWT

JSON 网络令牌

第一个

在服务端,首先我们需要对用户的 JSON 对象进行编码,然后返回客户端...JWTTOKEN

(no code for this)

也许是这样的:

第二

客户端在 SocketIO 连接中向服务器发送相同的 accessToken

客户端socket-io.client.factory.js

3日

服务端解码 Token 判断是否为同一用户,并将 userId 保存在 Socket 中,连接成功后加入用户聊天。

服务器express.js

问题

我在第一部分有问题。

在我的第一个想法中,生成的令牌JWT在登录后被发送到用户对象内的客户端。但是如果客户端通过 登录OAuth 2.0,则此解决方案不起作用,因为服务器正在将页面重定向到主页并且不返回任何 json。我正在考虑生成一个返回此令牌的路由 API,并执行 REST 请愿以获取令牌...

我的第二个想法是服务器将令牌保存在 MongoDB(用户模式)中。而且我们总是可以轻松地访问令牌。在 angularJS 中,我们拥有Authentication.user包含用户数据的变量,并且不需要生成新的路由 API。

我的问题是...

  • 将服务器生成的令牌发送到客户端的最佳方式是什么JWT(简单的方法,更安全)

谢谢!

类似的问题:

更多参考:

0 投票
2 回答
146 浏览

access-token - 如果有人知道您的 JSON Web 令牌的密钥(签名)怎么办?

如果有人知道密钥并更改例如 json 令牌的用户名和到期时间,他们是否能够访问服务器上的安全数据?

0 投票
1 回答
441 浏览

security - JOSE jwe/jws 有效载荷

使用 JOSE 时是否可以有任何类型的有效负载?

我正在考虑做类似的事情: {"alg":"ES512", "cty":"XML" }

只需从 XML 文件中创建一个字符串,在服务器端我检查 cty 并创建 XML。

我很确定它是可能的,但是我没有看到任何示例,所以我开始认为这可能不是 jose 背后的想法,而 cty 仅表示有效载荷是 JWT 或与 jose 相关的东西。

0 投票
1 回答
5426 浏览

oauth - JSON Web 令牌中的客户端 ID 或多个受众

我在我的应用程序中使用 JWT 实现 OAuth 2.0,并且无法决定将什么设置为我的aud声明。用户将通过我的身份验证服务器“登录”到我的客户端以访问我的 API(资源)服务器。我希望我的令牌仅对特定客户端和特定 API 有效。

认证流程

从我的客户端登录时,我没有将它包含client_id在请求中,但在发现的大多数 实现 中,设置为 that 。我倾向于在我的登录请求中包含一个客户字段然后将令牌中的只需添加一个自定义声明,以明确声明此令牌是为特定客户端创建的。 audclient_idaudience_idaudclient_idaudience_idaudiencesclient

我没有遇到任何在 OAuth 登录请求中同时包含 aclient_id和(s) 的在线实现,也没有在规范中audience_id看到保留声明。client

我在这里错过了什么吗?

在 JWT中具体说明不同client_id的最佳实践是什么?audience_id

0 投票
1 回答
93 浏览

json-web-token - 根据 GITkit JWT idtoken 有效负载中的信息创建用户帐户?

从 JWT 有效负载中的数据开始唯一识别用户的最佳方法是什么?

我不会单独使用电子邮件地址(或它的加盐哈希)作为用户帐户的主键,因为我不确定这样做是否真的安全。

可以使用由特殊字符分隔的 user_id 和 provider_id 的串联吗?这种连接是否保证在所有“大”和“诚实”提供者中都是唯一的(我不知道 rouge 提供者是否会做坏事)?还是电子邮件地址和 provider_id 的串联?

0 投票
1 回答
1116 浏览

wso2 - WSO2carbon 的 RSA 公钥

我正在从 WSOAM 生成 JWT 令牌,然后将其作为标头传递给 API。我在 nodejs 中创建了我的 API,我正在使用jsonwebtoken插件来验证和解码 JWT。

我无法找到 Wso2carbon 的 RSA 公钥来验证/解码令牌。

请帮助我如何生成 RSA 公钥或者我应该在哪里找到这个密钥?

0 投票
1 回答
1786 浏览

api - JWT解密要多少钱

我正在使用 JWT 进行 API 身份验证。我只是想知道每次请求到达时解密 JWT 的成本是多少。

0 投票
1 回答
2953 浏览

java - 无法在 Java 中验证 jwt 签名

我正在尝试通过验证其签名来验证 JWT 令牌。但是在验证过程中出现错误

java.security.SignatureException:签名长度不正确:得到 342 但预期为 256

. 我假设签名是sha256数据的加密哈希。在我的情况下,数据是base64(header)+"."+base64(body)。这是我的代码:

0 投票
2 回答
5720 浏览

javascript - 使用 jose4j 生成的令牌在 node.js 中使用 jsonwebtoken 验证 JWT 失败

我正在尝试使用 node.js 中的 jsonwebtoken 验证 jose4j 生成的 json Web 令牌,我看到以下错误:

[错误:PEM_read_bio_PUBKEY 失败]

jose4j 代码基本上是直接从示例中提取的:

所以在内部,令牌验证得很好。但是,当我复制令牌和密钥时(例如以下来自运行),会报告上述错误:

是否有一些我缺少的魔法(在 jose4j 或 jsonwebtoken 中)允许生成的令牌通过公钥进行验证?

附带说明一下,将令牌粘贴到 jwt.io 可以正确解码标头和有效负载,但是无法使用相同的公钥验证签名。我猜问题确实出在 jose4j 方面——但不确定。

0 投票
2 回答
1427 浏览

angularjs - 无法从 Angular 中的一个 XHR 请求的标头中删除 JSON Web 令牌

我需要使用 Web 令牌进行身份验证并访问我的 REST API。我也在尝试访问天气 API,但无法访问它,因为标头正在发送 x-access-token 并且我收到此错误:

Access-Control-Allow-Headers 不允许请求标头字段 x-access-token。

我已尝试以下方法将标头令牌重置为未定义的特定请求。不幸的是,当我在浏览器控制台中检查配置对象时,用户的令牌仍然存在。请帮忙!

天气服务.js

应用程序.js

authService.js