Java JWT认证

一、组成

  1、header(头部):

    {

      Typ="jwt"    ---类型为jwt

      Alg:"HS256"    ---加密算法为hs256

    }

  2、playload(携带的数据):

    iss:jwt签发者

    sub:jwt所面向的用户

    aud:接收jwt的一方

    exp:jwt的过期时间,必须大于签发时间

    nbf:定义在什么时间之前,该jwt都是不可用的

    iat:jwt的签发时间

    jti:jwt的唯一身份标识,主要用来作为一次性token,从而回避重放攻击

    以上为标准中注册的声明,建议但不强制使用,不能存放敏感数据

 

    例:{

        "userId":"1234"

        "userName":"lly"

      }

  3、Signature(验证签名)

    

二、优缺点

  1、无需在服务端存放用户数据,减轻服务端压力

  2、轻量级,风格简单

  3、跨语言

  4、一旦生产无法修改

  5、无法更新jwt有效期

  6、无法销毁一个jwt

上一篇:【spring Security】Security、oauth、JWT关系梳理


下一篇:python 实现JWT