2017-08-18 73 views
0

我有在request_token階段Twitter的OAuth的「無法驗證你」時,我指定一個回調URL

通過Twitter OAuth 1.0一個問題,如果我設置的一個oauth_callback OOB(甚至省略回調網址),那麼它工作正常,但當然不會將用戶重定向到我的Web應用程序。

N.B.我可能會以這種錯誤的方式去做。我只是想說明的是,客戶端瀏覽器應針對後已經儘快授權的Twitter

的OAuth的要求,因爲我改變oauth_callback到我的應用程序的回調URL網址,我得到的錯誤「無法驗證你」

我已經安裝在Twitter上的應用程序設置完全一樣的URL作爲一個我在request_token過程中即沒有指定路徑,其FYI是HTTPS基礎URL的oauth_callback參數設置回調URL, https://www.example.com/

任何協助,將不勝感激

UPDATE

此請求的工作(在所有未指定回調URL):

POST https://api.twitter.com/oauth/request_token HTTP/1.1 
Authorization: OAuth oauth_consumer_key="----myconsumerkey----", oauth_nonce="r70s1926", oauth_signature="iFGmXEpDav0lVpge9Ls9ACGI6r0%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1503053275", oauth_version="1.0" 

這個要求不(回調URL指定的,同Twitter的應用程序設置):

POST https://api.twitter.com/oauth/request_token HTTP/1.1 
Authorization: OAuth oauth_callback="https%3A%2F%2Fwww.example.com", oauth_consumer_key="----myconsumerkey----", oauth_nonce="707n8282", oauth_signature="0KWzeJwQ%2FNMfmdZ%2Bt0zNEU4g3Ag%3D", oauth_signature_method="HMAC-SHA1", oauth_timestamp="1503053306", oauth_version="1.0" 

以上要求返回:

{"errors":[{"code":32,"message":"Could not authenticate you."}]} 
+0

_「我得到錯誤‘可能不是你’,」 _認證?直接從Twitter?或者在用戶返回之後從您的應用程序中獲取? – CBroe

+0

問題已更新,希望它的只是一些愚蠢的我忘記做:) – Jimbo

+0

我不明白你爲什麼期望_this_步驟重定向用戶的任何地方......這只是你在後臺做POST請求,作爲據我瞭解的文件。 – CBroe

回答

0

由於排除或oob工作的設置,它聽起來像簽名代中的編碼問題。

檢查oauth_callback網址是您的簽名基本字符串中包含雙編碼看起來應該是這樣的: - 在從

POST&https%3A%2F%2Fapi.twitter.com%2Foauth%2Frequest_token&oauth_callback%3Dhttps%253A%252F%252Fwww.example.com%26oauth_consumer_key%3Dmyconsumerkey%26oauth_nonce%3D707n8282%26oauth_signature_method%3DHMAC-SHA1%26oauth_timestamp%3D1503057157%26oauth_version%3D1.0 
+0

試過單一和雙重編碼,但對響應沒有影響。甚至試圖指定一個無效的相對URL。 – Jimbo

+0

奇怪的是,作爲一個測試嘗試使用任何沒有任何需要編碼的字符,如'www.example.com',看看是否有效。 –

相關問題