首页 > 其他分享 >JWT鉴权如何实现

JWT鉴权如何实现

时间:2022-10-24 22:35:59浏览次数:71  
标签:jwt yyy xxx JWT 如何 token 鉴权

如何实现jwt鉴权机制?

JWT(JSON Web Token),本质就是一个字符串书写规范,作用是用来在用户和服务器之间传递安全可靠的信息

  • 为什么需要token
    在后台管理系统中,我们通常使用cookie-session的方式用于鉴权, jwt实现token鉴权(nodejs koa) 但这种方式存在着以下问题:
    1、比如cookie的容量太小、
    2、浏览器端和app端发送http请求时携带cookie会有差异、
    3、分布式系统和服务器集群保证如何保证sessionId是相同,
    基于以上问题,有了token这种方式,token的鉴权不受浏览器或app端的限制,通用性安全性都更强。

实现token的鉴权方式通常使用jwt,即json web token,jwt的格式如 xxx.yyy.zzz

  • 头部(Header) xxx的部分用来描述使用什么样的加密方式
  • 载荷(Payload) yyy的部分是携带的数据,比如id,name,通常还会携带 iat(issue at)发布时间, exp(expiration time)过期时间,用于鉴权的时候判断此token是否在有效期内,以上xxx和yyy都是对json数据以base64编码的方式进行转换,
  • 签名(Signature)而zzz是对xxx.yyy再加上密钥进行加密,加密的方式在header中。

在目前前后端分离的开发过程中,使用token鉴权机制用于身份验证是最常见的方案,流程如下:

  • 服务器当验证用户账号和密码正确的时候,给用户颁发一个令牌,这个令牌作为后续用户访问一些接口的凭证
  • 后续访问会根据这个令牌判断用户时候有权限进行访问

如何实现JWT鉴权(总结)

Token的使用分成了两部分:

  • 生成token:登录成功的时候,颁发token
  • 验证token:访问某些资源或者接口时,验证token

使用JWT鉴权的优缺点

优点:

  • json具有通用性,所以可以跨语言
  • 组成简单,字节占用小,便于传输
  • 服务端无需保存会话信息,很容易进行水平扩展
  • 一处生成,多处使用,可以在分布式系统中,解决单点登录问题
  • 可防护CSRF攻击
    缺点:
  • payload部分仅仅是进行简单编码,所以只能用于存储逻辑必需的非敏感信息
  • 需要保护好加密密钥,一旦泄露后果不堪设想
  • 为避免token被劫持,最好使用https协议

标签:jwt,yyy,xxx,JWT,如何,token,鉴权
From: https://www.cnblogs.com/maxiaohu/p/16823289.html

相关文章