单点登录之jwt

单点登录

    单点登录就是指在多系统应用中登录一个系统,便可在其他系统中得到授权而无需要再次登录。而在授权的过程中需要用到JWT在用户和服务器之间传递安全而可靠的信息。


什么是JWT

     Json Web Token,是一个非常轻巧的规范,用来在用户和服务器之间传递安全可靠的信息。


适用场景

     JWT适用于向web应用传递一些非敏感的信息,例如:加好友、下订单等操作。但是例如支付订单这些操作最好不要使用JWT。


组成

    一个JWT实际上就是一个字符串,包括头部、载荷与签名。

头部

   头部描述JWT的最基本的信息,例如其类型以及签名所用的算法等。这也可以被表示成一个JSON对象。

{
  "typ": "JWT",
  "alg": "HS256"
}

载荷

    载荷有固定的的五个字段,分别为

    1.iss: 该JWT的签发者
    2.sub: 该JWT所面向的用户
    3.aud: 接收该JWT的一方
    4.exp(expires): 什么时候过期,这里是一个Unix时间戳
    5.at(issued at): 在什么时候签发的

   头部和载荷都会使用base64编码将上述信息编码成字符串。


签名

    将上面两个编码后的字符串用.连接在一起,然后用HS256算法进行加密,然后拼接到被签名的字符串后面,就得到了完整的JWT。

    使用签名是为了知道信息是否被篡改,被篡改的信息的签名会重复生成,用户只需要比对签名是否一致就可以确定信息是否被别人动过。

猜你喜欢

转载自blog.csdn.net/weienjun/article/details/80061353