基础概念
OAuth 2.0 是一种开放标准用于访问授权(OAuth 2.0 Bearer Token Usage)
Bearer Token:一种令牌类型
access_token 和 refresh_token 的区别是什么?
- OAuth 2.0 授权协议, 有两个令牌 token , 分别是 access_token 和 refresh_token
- access_token:访问令牌, 访问受保护资源的凭证
- 时效短
- 授权服务器一定颁发
- 过期后, 可以使用 refresh_token 重新获取
- 资源服务器和授权服务器交互
- 颁发后可以直接使用
- refresh_token:刷新令牌, 获取 access_token 的凭证
- 时效长
- 可选
- refresh_token 过期后就只能重新授权
- 只和授权服务器交互
- 需要客户端秘钥 client_secret
- 同时使用两种 token 的好处:防止泄漏
- access_token 泄露了怎么办? 很快就会过期
- refresh_token 泄露了怎么办? 使用 refresh_token 是需要客户端秘钥 client_secret
在 OAuth 2.0 安全最佳实践中, 推荐 refresh_token 是一次性的
- 使用 refresh_token 获取 access_token 时, 同时会返回一个 新的 refresh_token, 之前的 refresh_token 就会失效
- 但是两个 refresh_token 的绝对过期时间一样, 所以不会存在 refresh_token 快过期就获取一个新的, 然后重复,永不过期的情况