在OAuth规范的6.1.1. Consumer Obtains a Request Token部分中,您必须发送包含以下参数的请求:
oauth_signature:
The signature as defined in Signing Requests.
但是,如果
oauth_signature
本身是请求的一部分,那么如何签名呢?我的意思是,您签署“什么”字样?除了oauth_signature
还是其他所有字段?例如,在The OAuth 1.0 Protocol中,它们提供了以下获取临时证书的示例:
POST /initiate 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_signature
字段的呢? 他们签名了什么?抱歉,对于加密货币来说是新的-因此请多加解释。
最佳答案
正在对“签名基础字符串”进行签名。它捕获了此特定请求的“本质”,因此不会被弄乱。 (请注意,它不包括所有内容,尤其是不包括请求正文)。
在您链接到的示例中,请继续阅读示例基本字符串:
POST /request?b5=%3D%253D&a3=a&c%40=&a2=r%20b HTTP/1.1
Host: example.com
Content-Type: application/x-www-form-urlencoded
Authorization: OAuth realm="Example",
oauth_consumer_key="9djdj82h48djs9d2",
oauth_token="kkk9d7dh3k39sjv7",
oauth_signature_method="HMAC-SHA1",
oauth_timestamp="137131201",
oauth_nonce="7d8f3e4a",
oauth_signature="bYT5CMsGcbgUdFHObYMEfcx6bsw%3D"
POST&http%3A%2F%2Fexample.com%2Frequest&a2%3Dr%2520b%26a3%3D2%2520q
%26a3%3Da%26b5%3D%253D%25253D%26c%2540%3D%26c2%3D%26oauth_consumer_
key%3D9djdj82h48djs9d2%26oauth_nonce%3D7d8f3e4a%26oauth_signature_m
ethod%3DHMAC-SHA1%26oauth_timestamp%3D137131201%26oauth_token%3Dkkk
9d7dh3k39sjv7
关于digital-signature - "What"oauth_signature签名吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9986533/