JWT登录凭证和TOKEN登录凭证对比

前几天新搭一个项目框架,在用户登录凭证选择上纠结了好久。之前我一直用的redis+token认证方式,这种方式感觉灵活也方便,然后同事说应该用JWT令牌方式,现在比较火。然后一场针对怎么选,选什么好的辩论展开了。针对这种技术选型的讨论,我觉得还挺有意思的,其实还是那句话:没有最好的方案,也不存在哪个更好,只是针对不同应用场景有做出合适的选择,那就是最好的。以下是我个人对token和JWT的对比理解:

共同点

  1. 两者都可以携带用户信息
  2. 都是访问资源的令牌
  3. 都是使服务端无状态化
  4. 都是只有验证成功后,客户端才能访问服务端上受保护的资源

区别

  • JWT: 将 Token凭证 、过期时间还有用户信息等加密后存储于客户端,服务端只需要使用密钥解密进行校验(校验也是 JWT 自己实现的)即可,服务端不需要管理JWT令牌,因为 JWT 自包含了用户信息和加密的数据。
  • Token:依赖于redis服务,增加了一个缓存中间件,增大系统的复杂度。

jwt劣势

  • jwt加密方式会是密文变得很长,不便传输及管理。
  • jwt实现令牌缓存在客户端,服务端无法管理,比如要往登录凭证缓存更多信息,没办法控制。
  • jwt登录状态受客户端控制,如果做同一台机器只能一个用户登录这种服务端控制策略,不是很好做

token的劣势

  • 增加了中间件是系统变得更复杂。
  • 服务端得管理维护用户token,做服务迁移的时候,还得考虑用户登录凭证的迁移。

选择

个人觉得不管是JWT还是token没有觉得的好和坏,移动端应用我偏向选择token认证方式,accessToken+refreshToken认证机制更灵活,如果有单用户单一登录需求,最好用token认证方式。web端应用可以考虑采用JWT,登录凭证方便管理。

以上只是个人见解,由于研究的不是很深,想必还有很多不足的地方,欢迎各位大牛指正和补充。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CAS(Central Authentication Service)是一种单点登录(SSO)协议和服务器,用于集中管理用户的身份认证和授权。CAS通过在客户端和服务端之间建立一个可信任的认证中心来实现单点登录。当用户登录一个CAS客户端应用时,CAS会验证用户的凭据,并为其生成一个令牌(ticket)。该令牌可以用于访问其他受信任的CAS客户端应用,而无需再次输入凭据。这样,用户只需要登录一次,即可在多个应用中进行访问。 JWT(JSON Web Token)是一种开放标准(RFC 7519),用于在不同系统之间传递安全可靠的信息。它使用JSON格式对信息进行编码,并使用数字签名进行验证和保护。JWT通常用于身份认证和授权,可以被用作用户的身份凭证。当用户登录成功后,服务器会生成一个JWT并返回给客户端。客户端在后续的请求中将该JWT作为身份凭证发送给服务器进行验证,从而实现用户认证和授权。 CAS单点登录JWT登录都提供了一种实现用户身份认证和授权的方式。它们各有优势和适用场景。 CAS单点登录适合于企业内部系统或者具有多个相关性强的应用,CAS作为中心认证服务器,可以实现在多个应用之间共享登录状态,用户只需登录一次即可访问所有受信任的应用。CAS提供了集中管理用户身份认证和授权的能力,可以方便地管理用户的权限和会话。 JWT登录适合于分布式系统或者跨域的应用,因为JWT是基于令牌的身份验证方式,不需要在服务器端存储用户的登录状态。JWT是无状态的,每个请求都包含了认证信息,服务器通过验证JWT的数字签名来确认用户的身份和权限。JWT具有轻量级、可扩展和易于集成等优势,适用于微服务架构和前后端分离的应用。 总之,CAS单点登录JWT登录都是常见的身份认证和授权方式,根据具体的场景和需求选择合适的方式进行实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值