在REST请求中传递oAuth参数

时间:2012-05-11 02:27:33

标签: oauth

我有一个项目规范,可以RESTful地访问第三方远程API并需要oAuth。规范包括以下文本:

  

访问API需要使用OAuth协议。一个   每个组织的共享密钥/访问密钥组合可以防止   未经授权的各方访问。因为服务端点   识别组织,预计不会有其他参数   传递了封装REST请求的OAuth标头。

其中,我不完全理解以下内容:

  

因为服务端点   识别组织,预计不会有其他参数   传递了封装REST请求的OAuth标头。

1 个答案:

答案 0 :(得分:5)

oauth_*参数可以在Authorization标头中传递,也可以作为URL参数传递。如果您在Authorization标头中传递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参数:

 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