2012-05-11 95 views
1

我有一个项目规范,它以REST风格访问第三方远程API并需要oAuth。该规范包含以下文本:在REST请求中传递oAuth参数

访问API需要使用OAuth协议。每个组织共享密钥/访问密钥组合可防止未授权方访问 。由于服务端点 标识组织,因此在封装REST请求的OAuth标头中不会传递其他参数 。

这一点,我不完全了解以下内容:

因为服务端点 标识的组织,没有其他的参数预计将 在OAuth头中传递一个封装了REST请求。

回答

5

oauth_*参数可以在Authorization标头中传递,也可以作为URL参数传递。如果您在授权标头中通过oauth_*值,我将该报价读为含义,不要在标头中包含其他值。

的OAuth PARAMS作为报头:

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在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