2012-04-03 38 views
9

Trong phần 6.1.1. Consumer Obtains a Request Token của OAuth Spec nói rằng bạn phải gửi một yêu cầu có chứa paramter sau:"Dấu hiệu oauth_signature" có nghĩa là gì?

oauth_signature: 
    The signature as defined in Signing Requests. 

Nhưng làm thế nào bạn có thể đăng yêu cầu nếu oauth_signature chính nó là một phần của nó? Ý tôi là, "những gì" bạn đăng nhập? Tất cả các trường ngoại trừ oauth_signature hoặc gì?

Ví dụ, trong The OAuth 1.0 Protocol họ cung cấp các ví dụ sau đây của việc thu thập các chứng chỉ tạm thời:

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" 

Nhưng làm thế nào họ nhận được lĩnh vực oauth_signature? Điều gì là họ đã ký?

Xin lỗi, mật khẩu mới - vì vậy giải thích giả sẽ được đánh giá cao.

Trả lời

7

"Chuỗi cơ sở chữ ký" đang được ký. Nó nắm bắt được "bản chất" của yêu cầu cụ thể này, để điều đó không thể bị rối tung. (Lưu ý rằng nó không bao gồm mọi thứ, đặc biệt không phải là phần thân yêu cầu).

Trong ví dụ này bạn liên kết với, đọc trên cho một chuỗi ví dụ cơ sở:

Ví dụ, yêu cầu HTTP:

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" 

được đại diện bởi các cơ sở chữ ký sau chuỗi (ngắt dòng chỉ dành cho mục đích hiển thị):

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 
+2

Aah! Tôi thấy, [Phần 9] (http://oauth.net/core/1.0/#signing_process) cung cấp giải thích rõ ràng về cách thực hiện, nêu rõ trong 9.1.1 rằng 'Tham số oauth_signature PHẢI được loại trừ.' – drozzy

Các vấn đề liên quan