使用jwt能控制人数吗_什么是JWT,您应该使用它们吗?

使用jwt能控制人数吗

JWT是JSON Web令牌的缩写。 JSON Web令牌(JWT)是一个开放标准( RFC 7519 ),它定义了一种紧凑且自包含的方式,用于在各方之间安全地将信息作为JSON对象传输。

由于此信息是经过数字签名的,因此可以进行验证和信任。 可以使用秘密(使用HMAC算法)或使用RSAECDSA的公钥/私钥对对JWT进行签名

授权 :这是使用JWT的最常见方案。 一旦用户登录,每个后续请求将包括JWT,从而允许用户访问该令牌允许的路由,服务和资源。 单一登录是当今广泛使用JWT的一项功能,因为它的开销很小并且可以在不同的域中轻松使用。

那么,为什么要使用JWT?

1.无状态

JWT支持无状态服务器REST原理。 在这种情况下,服务器不会存储来自同一客户端的不同呼叫的会话信息,因此可以在每个呼叫中​​将JWT作为授权标头发送,从而无需在服务器上跟踪会话信息。

2.去耦/去中心化

JWT不需要中央系统来验证每个请求。 令牌可以在任何地方进行验证,甚至可以在库和util类中进行验证。

3.支持索赔

我们可以将称为“ claims”的JSON数据放入令牌中。 可以将用户详细信息(例如ID,用户名,角色和特权)捆绑在令牌中,从而减少了从后端服务器获取此信息所需的网络调用。

4.自动过期

可以将JWT编程为在给定的到期时间内到期。 因此,我们不需要在后端数据库中管理令牌的生命周期,实际上,不建议将JWT存储在持久数据库中。 过期的JWT令牌,如果被解码,将抛出粗糙的异常。

JWT是无状态的,分散的,它们支持令牌中的声明,并且它们自动过期。

但是,也有一些缺点

1.庞大

JWT的内存效率不高。 特别是,当您在令牌中使用自定义声明时,令牌的大小可能会膨胀到无法存储在Cookie中的程度。

2.透明

令牌声明不能被篡改,但是声明仅在令牌的中间部分进行了base64编码,因此可以轻松对其进行解码。

3.过时的数据

令牌中的数据可能会过时,并且可能不再反映数据库中数据的最新版本。

4.过时的令牌

您不能使单个JWT无效,因为您不应将它们存储在持久性存储中。 这意味着您不能确定用户是否已退出任何系统。

因此,JWT是无状态的,分散的,支持令牌内的声明,并且它们会自动过期。 但是,它们又大又透明,并且容易过时。

我们如何减轻不利条件?

  • 减少TTL,请始终创建寿命短(30分钟)的令牌。
  • 经常刷新令牌。
  • 仅当用户与您的网站保持互动时才刷新。
  • 将资源标识符而不是资源本身存储为令牌内的声明。
  • 不要在令牌中保留敏感数据,例如用户的登录凭据。将令牌的大小保持在4KB以下!

翻译自: https://hackernoon.com/wtf-are-jwt-tokens-and-should-you-use-them-5o273ydv

使用jwt能控制人数吗

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值