问题标签 [jwt]

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 投票
2 回答
39212 浏览

javascript - Node.js - Express.js JWT always returns an invalid token error in browser response

I'm using node.js and express.js with the express-jwt module, and I have set up a simple HTTP server to test everything:

This is the node code involved:

So once I open the /login URL I get logged in and I send the session token to api/post, which returns this response error in the browser console:

I don't understand why this is happening, because the token stored in the front-end and the token in JWT are the same. What could be the reason for this error?

An example of headers POSTed to the api/post URL:

enter image description here

0 投票
2 回答
7894 浏览

spring-security - Spring Security JWT 和 Oauth2

我想使用 Spring Security 设置一个中央身份验证/授权服务器,我可以从中获取 JWT 令牌,然后我可以使用它来访问另一个 Spring Security 备份的 REST 服务器上的受限资源。

这是我的流程:

1) HTML JS / Mobile 等客户端在身份验证服务器上进行身份验证以获取 JWT 令牌 2) 客户端将此令牌在 HTTP 标头中发送到 REST 服务器以获得对安全资源的访问权限

我认为 JWT 最适合这种情况,因为它可以包含所有相关数据,并且 REST 服务器可以是完全无状态的,只需解码令牌即可在 REST 服务器上获取所有必要的数据(角色、客户端 ID、电子邮件......)。

Oauth2 是正确的选择吗?如果是这样,有人可以指出我正确的方向吗?如果 JWT 不是正确的选择,我愿意接受其他解决方案:) 我应该提到,在我的情况下,也可以在 REST 服务器上从数据库加载客户端信息,但它不应该负责验证用户(意味着没有用户名/密码检查,只是令牌解码/验证......)

0 投票
4 回答
10751 浏览

javascript - Node js、JWT 令牌和背后的逻辑

我正在使用 JWT 保护节点 js url https://github.com/auth0/express-jwt

要创建 JWT 令牌用户会话,我只需执行以下操作:

或者在登录调用的情况下

每次调用受保护的 url 时,我都会检查req.userJWT 中间件是否自动设置。

现在我想知道:

1 - 调用 sign() 时 JWT 令牌存储在哪里?

2 - 每次调用受保护的 url 时我都必须验证()令牌吗?如果是,为什么?

3 - 当我为已签名的用户设置新令牌时,旧令牌(如果存在)会被删除吗?如果到期未设置或例如为 5 年怎么办?

4 - 为什么我不能在同一浏览器/应用程序页面上设置新令牌?如果我注册一个新令牌但令牌匹配(我检查过),我会收到无效签名错误这就像我不能在同一个浏览器上登录超过 1 个用户

0 投票
32 回答
324446 浏览

javascript - 使 JSON Web 令牌无效

对于我正在处理的新 node.js 项目,我正在考虑从基于 cookie 的会话方法切换(我的意思是,将 id 存储到包含用户浏览器中的用户会话的键值存储)到使用 JSON Web 令牌 (jwt) 的基于令牌的会话方法(无键值存储)。

该项目是一个使用 socket.io 的游戏 - 在单个会话中存在多个通信通道(web 和 socket.io)的情况下,具有基于令牌的会话将很有用

如何使用 jwt 方法从服务器提供令牌/会话失效?

我还想了解这种范式应该注意哪些常见(或不常见)的陷阱/攻击。例如,如果这种范式容易受到与基于会话存储/cookie 的方法相同/不同类型的攻击。

所以,假设我有以下内容(改编自thisthis):

会话存储登录:

基于令牌的登录:

--

会话存储方法的注销(或无效)需要使用指定令牌更新 KeyValueStore 数据库。

在基于令牌的方法中似乎不存在这种机制,因为令牌本身将包含通常存在于键值存储中的信息。

0 投票
1 回答
914 浏览

c# - 从本地机器存储中的证书创建 CngKey 以与 ECDsaCng(CngKey) 一起使用?

我一直试图围绕 ECDsaCng、CngKey 和有效的 EC 证书进行签名。该证书由“Symantec Class 3 ECC 256 bit Extended Validation CA”颁发,签名算法为“sha256ECDSA”,签名哈希算法为“sha256”,公钥参数=“ECDSA_P256”,密钥用法=“数字签名( 80)”。

除了 ECDsaCng,我还尝试过将 JwtSecurityTokenHandler 与证书一起使用,但出现“不支持证书算法”异常。使用“标准”2048 位 SSL 证书可以正常工作。

我需要做的是用 ES256 签署 JWT,到目前为止,这只能通过使用带有 ECDsaCng 的 256 位“随机生成”密钥来工作,所以对这些问题中的任何一个的回答都会让我很开心:

  1. 如何订购可与 JwtSecurityTokenHandler 一起使用以进行 ES256 签名的有效证书?

  2. 如何从商店中的证书创建 CngKey?(证书的私钥不可导出。)

  3. 是否有任何其他方式可以使用 ES256 和无法从商店导出的证书私钥进行签名?

几乎任何帮助表示赞赏!

此致,

亨里克

0 投票
1 回答
2563 浏览

c# - 在 Asp.net Web 服务中集成 JWT

有人可以告诉我如何将 JWT 集成到默认的 Web API 项目中。

这里是图书馆

他们只是解释了如何使用 NuGet 安装库以及如何生成令牌。但是现在我如何将它与基于身份验证的系统集成?

到目前为止我的实现:

0 投票
1 回答
579 浏览

google-app-engine - Google Cloud Endpoints 用户令牌身份验证

我目前正在设计一个 REST Api,它将在 Google Cloud Endpoints 上运行,并将在 Web 和 Android 应用程序中使用。身份验证不需要谷歌帐户。我想知道如何为它进行用户身份验证。

我读过这篇文章: http ://blog.auth0.com/2014/01/07/angularjs-authentication-with-cookies-vs-token/

如何在 GAE 上实现它?

0 投票
4 回答
14357 浏览

c# - 修改 OWIN OAuth 中间件以使用 JWT 不记名令牌

我目前正在尝试使用以下技术的组合为新应用程序创建基于声明的身份验证的概念证明:Web API 2、OWIN 中间件和 JWT。

为了简单起见,我从 Web API 2 项目模板开始,并将身份验证更改为“个人用户帐户”。然后,我创建的示例客户端能够通过调用 /Token 来获取令牌,并且能够使用 OAuth 持有者令牌调用示例端点。到目前为止,一切都很好。然后我将以下代码添加到 Startup.Auth.cs 以尝试启用 JwtBearerAuthentication:

我预计 Web API 2 会开始从对 /Token 的调用中返回 JWT,但它似乎没有做任何事情。几天来我一直在努力解决这个问题,但没有成功,而且微软的文档也不是很及时。

我还尝试将以下内容添加到我的 OAuthAuthorizationServerOptions

我也可能试图做完全错误的事情。

任何想法将不胜感激。

0 投票
2 回答
4583 浏览

asp.net - 错误:收到的 JWT 令牌发生安全令牌验证错误。Http状态码:未授权

当我尝试使用 ASP.NET Web 角色部署 Azure 2.2 应用程序时,我收到以下错误消息:

错误:收到的 JWT 令牌发生安全令牌验证错误。Http 状态码:未经授权的 OperationId:

我有一个订阅,我在部署时登录了。

以前我收到此错误消息:

角色 xxy 的实例 0 处于未知状态

为什么会出现此异常,我该如何解决?

0 投票
1 回答
2002 浏览

asp.net-web-api - Web Api - 通过 STS 基于声明的身份验证

我正在构建两个单独的 ASP.Net WebApi 应用程序,它们将在同一个域(不是子域)下运行,加上一个处理身份验证的 STS,并将作为用户帐户存储。

客户端通过微风.js/angular.js 连接到该 API。所以我认为 JWT (JSON Web Token) 将是我对令牌的选择,因为我不想使用表单身份验证。

如何仅通过域名实现 STS 和应用程序之间的信任?我发现了一些 WS-Federation 信任样本,但我认为这对我需要构建的东西来说太过分了。