OAuth2协议:四种授权模式
    java中的实现
    Spring Security OAuth2

    oauth/authorize 授权
    oauth/token 获取access_token、refresh_token
    oauth/check_token 校验令牌

    JWT
    官网: https://jwt.io/
    JSON Web Token(JWT)

    • 定义了一种简介的、自包含的协议格式,用于在通信双方传递json对象,传递的信息经过数字签名可以被验证和信任。
    • JWT可以使用HMAC算法或使用RSA的公钥/私钥对来签名,防止被篡改

    优缺点:
    JWT令牌的优点:

    • jwt基于json,非常方便解析。
    • 可以在令牌中自定义丰富的内容,易扩展。
    • 通过非对称加密算法及数字签名技术,JWT防止篡改,安全性高。
    • 资源服务使用JWT可不依赖授权服务即可完成授权。

    缺点:
    JWT令牌较长,占存储空间比较大。
    组成:一个JWT实际上就是一个字符串,它由三部分组成,头部(header)、载荷(payload)与签名(signature)。
    可以独立使用的
    token的验证解析
    token过期校验

    • 有时不希望签发的token是永久生效的,可以为token添加一个过期时间。原因:从服务器发出的token,服务器自己并不做记录,就存在一个弊端:服务端无法主动控制某个token的立刻失效。

      spring-security-jwt 的依赖中没有封装jjwt的依赖,如果使用jjwt,需要单独引入jjwt的包