Javascript 可以在http头中将jwt令牌加倍吗?

Javascript 可以在http头中将jwt令牌加倍吗?,javascript,http,express,jwt,fetch,Javascript,Http,Express,Jwt,Fetch,我正在使用jwt访问和刷新令牌模式。这意味着客户端需要在头中发送2个jwt令牌。目前,我正在这样做: 'Authorization': 'Bearer ' + user.accessToken + ' ' + user.refreshToken 然后在我的服务器上,我拆分了req authorization头,因为我知道[1]是访问令牌,[2]是刷新令牌,所以我就有了令牌。这种方法在安全方面有什么问题吗?我对fetching/auth比较新,并且知道有一些具体的实践需要遵循,这可能会破坏“Be

我正在使用jwt访问和刷新令牌模式。这意味着客户端需要在头中发送2个jwt令牌。目前,我正在这样做:

'Authorization': 'Bearer ' + user.accessToken + ' ' + user.refreshToken
然后在我的服务器上,我拆分了req authorization头,因为我知道[1]是访问令牌,[2]是刷新令牌,所以我就有了令牌。这种方法在安全方面有什么问题吗?我对fetching/auth比较新,并且知道有一些具体的实践需要遵循,这可能会破坏“Bearer”的正常使用情况,但它是有效的,所以如果没有任何安全隐患,我希望使用这个解决方案。我自己实现身份验证,不需要与其他人集成,因此不需要Oauth2。

我使用jwt访问和刷新令牌模式。对不起,那不是真的。你制造的代币混合物表现不佳,不安全,最终不会给你任何回报。这就是原因

访问令牌背后的思想是第三方服务可以使用它来授权用户

刷新令牌背后的思想是用户可以随时发布一对新的访问/刷新令牌

你做什么:

  • 实际上,您允许任何第三方同时拥有访问和刷新令牌,这意味着如果我是恶意第三方,我可以使用刷新令牌将用户保留在我的系统中(通过获取我自己的访问令牌并随时更新),并永远代表用户行事
  • 您将一个双倍大小的令牌附加到头上,JWT因请求头的大小而闻名。因此,只要刷新令牌的大小与访问令牌的大小几乎相同,问题就会加倍
  • 你一无所有。究竟什么是胜利

  • 当你说第三方是什么意思?我只是把这些代币给我的用户。不使用Oauth或任何社交媒体登录集成。刷新令牌的要点是,它持续的时间更长,并且也存储在我的数据库中,所以我的用户可以重置密码,或者我可以挂起用户。通过这种方式,他们有15分钟有效的访问令牌,这意味着我不必检查数据库中的刷新令牌,但至少每15分钟检查一次,哪一种性能更正确?还有,头球大有什么问题?只需要发送多一点字节?就这些吗。您不应该每15分钟检查一次用户,因为您拥有该用户的访问令牌。给15分钟的那个。刷新令牌的目的是每15分钟刷新一次访问令牌,由于上述原因,通常作为单独的调用来实现。2.稍微多一些字节意味着每个请求中最小的字节的大小为0.15KB,这对于移动网络3来说尤其重要。当然,你有权重新发明轮子,它已经发明了,而且比你试图发明的轮子先进得多-这已经做了所有事情,而且是由知道如何做的人做的。我想使用这个软件包,但它不支持刷新令牌方法。对吗?在你验证用户身份的那一刻,您可以发行2个令牌:访问和刷新。然后,每次访问令牌即将过期时(例如,过期前5分钟),您都会从客户端发出一个特殊呼叫,以刷新令牌,其中您只传递刷新令牌,并获得一个新的访问令牌(可能是一个新的刷新令牌,取决于您的需要)。就这样。同时,您只需要将当前访问令牌附加到请求头。这意味着您永远不会在头中发送刷新令牌,而是像用户名/密码一样安全地存储在客户端