我有一个项目规范,可以RESTful地访问第三方远程API并需要oAuth。规范包括以下文本:
访问API需要使用OAuth协议。一个 每个组织的共享密钥/访问密钥组合可以防止 未经授权的各方访问。因为服务端点 识别组织,预计不会有其他参数 传递了封装REST请求的OAuth标头。
其中,我不完全理解以下内容:
因为服务端点 识别组织,预计不会有其他参数 传递了封装REST请求的OAuth标头。
答案 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