当前位置:   article > 正文

python中jwt的使用_jwt python

jwt python
JWT是什么?
  • JWT是json web token的缩写,一种基于token的json格式web认证方法,说白了就是一个很长的字符串
JWT原理是什么?
  • 基本的原理是,第一次认证通过用户名密码,服务端签发一个json格式的token。后续客户端的请求都携带这个token,服务端仅需要解析这个token,来判别客户端的身份和合法性
JWT的作用和特点
  • 由于http协议是无状态的,所以客户端每次访问都是新的请求。这样每次请求都需要验证身份,传统方式是用session+cookie来记录/传输用户信息,而JWT就是更安全方便的方式。它的特点就是简洁,紧凑和自包含,而且不占空间,传输速度快,而且有利于多端分离,接口的交互等等
  • JWT的主要作用在于:可附带用户信息,后端直接通过JWT获取相关信息。 使用本地保存,通过HTTP Header中的Authorization位提交验证
JWT的组成
  • 一个通常你看到的jwt,由以下三部分组成,它们分别是:
  • 1.header:主要声明了JWT的签名算法;是一个描述JWT元数据的JSON对象
{
    "alg": "HS256",  alg属性表示签名使用的算法,默认为HMAC SHA256(写为HS256)
    "typ": "JWT"  typ属性表示令牌的类型,JWT令牌统一写为JWT
}
  • 1
  • 2
  • 3
  • 4
  • 2.payload:主要承载了各种声明并传递明文数据;是存放有效信息的地方。
{
  "iss": "http://shaobaobaoer.cn",  iss: JWT的签发者,是否使用是可选的
  "aud": "http://shaobaobaoer.cn/webtest/jwt_auth/",  aud: 接收该JWT的一方,是否使用是可选的
  "jti": "4f1g23a12aa",  jti: jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击
  "iat": 1534070547,  iat(issued at): 在什么时候签发的(UNIX时间),是否使用是可选的
  "nbf": 1534070607,  nbf (Not Before):如果当前时间在nbf里的时间之前,则Token不被接受;一般都会留一些余地,比如几分钟;,是否使用是可选的
  "exp": 1534074147,  exp(expires): 什么时候过期,这里是一个Unix时间戳,是否使用是可选的
  "uid": 1,  
  "data": {
    "uname": "shaobao",
    "uEmail": "shaobaobaoer@126.com",
    "uID": "0xA0",
    "uGroup": "guest"
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 3.signture:拥有该部分的JWT被称为JWS,也就是签了名的JWS;没有该部分的JWT被称为nonsecure JWT 也就是不安全的JWT,此时header中声明的签名算法为none。三个部分用.分割。形如 xxxxx.yyyyy.zzzzz的样式。例如:
eyJhbGciOiJIUzUxMiIsImlhdCI6MTU4NTc5MTM2MCwiZXhwIjoxNTg1NzkxNjYwfQ.eyJ1c2VyX25hbWUiOiJhZG1pbiIsInVzZXJfcGFzc3dkIjoiMTIzNDU2Iiwi
    声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/893627
    推荐阅读
    相关标签
      

    闽ICP备14008679号