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

10-11 22:58
查看更多