我有一个以 REST 方式访问第三方远程 API 并需要 oAuth 的项目的规范。该规范包括以下文本:
访问 API 需要使用 OAuth 协议。每个组织共享的秘密/访问密钥组合可防止未经授权的各方访问。因为服务端点标识了组织,所以不希望在封装 REST 请求的 OAuth 标头中传递其他参数。
其中,我不完全理解以下内容:
因为服务端点标识了组织,所以不希望在封装 REST 请求的 OAuth 标头中传递其他参数。
我有一个以 REST 方式访问第三方远程 API 并需要 oAuth 的项目的规范。该规范包括以下文本:
访问 API 需要使用 OAuth 协议。每个组织共享的秘密/访问密钥组合可防止未经授权的各方访问。因为服务端点标识了组织,所以不希望在封装 REST 请求的 OAuth 标头中传递其他参数。
其中,我不完全理解以下内容:
因为服务端点标识了组织,所以不希望在封装 REST 请求的 OAuth 标头中传递其他参数。
oauth_*
参数可以在授权标头中传递,也可以作为 URL 参数传递。如果您传递 Authorization 标头中的值,则我认为这句话的意思是oauth_*
不要在标头中包含其他值。
OAuth 参数作为标头:
GET /initiate?foo=bar HTTP/1.1
Host: photos.example.net
Authorization: OAuth realm="Photos",
oauth_consumer_key="dpf43f3p2l4k3l03",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="137131200",
oauth_nonce="wIjqoS",
oauth_callback="http%3A%2F%2Fprinter.example.com%2Fready",
oauth_signature="74KNZJeDHnMBp0EMJ9ZHt%2FXKycU%3D"
OAuth params in the URL:
GET /initiate?foo=bar&oauth_consumer_key=dpf43f3p2l4k3l03&oauth_signature_method=HMAC-SHA1&oauth_timestamp=137131200&oauth_nonce=wIjqoS&oauth_callback=http%3A%2F%2Fprinter.example.com%2Fready&oauth_signature=74KNZJeDHnMBp0EMJ9ZHt%2FXKycU%3D HTTP/1.1
Host: photos.example.net