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的包
