参考1 理解OAuth2.0
https://www.cnblogs.com/taoshengyujiu/p/8556896.html
参考2 搞定OAth2.0
OAuth 2.0: Bearer Token Usage
Bearer Token (RFC 6750) 用于OAuth 2.0授权访问资源,任何Bearer持有者都可以无差别地用它来访问相关的资源,而无需证明持有加密key。一个Bearer代表授权范围、有效期,以及其他授权事项;一个Bearer在存储和传输过程中应当防止泄露,需实现Transport Layer Security (TLS);一个Bearer有效期不能过长,过期后可用Refresh Token申请更新。
一. 资源请求
Bearer实现资源请求有三种方式:Authorization Header、Form-Encoded Body Parameter、URI Query Parameter,这三种方式优先级依次递减
- Authorization Header:该头部定义与Basic方案类似
GET /resource HTTP/1.1 Host: server.example.com Authorization: Bearer mF_9.B5f-4.1JqM(Bearer+空格+token字符串)
- Form-Encoded Body Parameter: 下面是用法实例
POST /resource HTTP/1.1 Host: server.example.com Content-Type: application/x-www-form-urlencoded access_token=mF_9.B5f-4.1JqM
使用该方法发送Bearer须满足如下条件:
1.头部必须包含"Content-Type: application/x-www-form-urlencoded" 2.entity-body必须遵循application/x-www-form-urlencoded编码(RFC 6749) 3.如果entity-body除了access_token之外,还包含其他参数,须以"&"分隔开 4.entity-body只包含ASCII字符 5.要使用request-body已经定义的请求方法,不能使用GET
如果客户端无法使用Authorization请求头,才应该使用该方法发送Bearer
- URI Query Parameter:
GET /resource?access_token=mF_9.B5f-4.1JqM HTTP/1.1 Host: server.example.com Cache-Control: no-store
服务端应在响应中使用 Cache-Control: private