這是我第一次嘗試編寫Rails應用程序以使用外部Web服務。通過ActiveResource向Web服務提供憑證
我已經做了一些基本的實驗,通過ActiveResource從另一個Rails應用程序檢索一些記錄,這些記錄工作得很好,但在這種情況下,我試圖訪問第三方Web服務,在我能做任何事情之前需要非常特定的身份驗證。
有問題的服務是由DNSMadeEasy提供的REST API的文檔可在http://www.dnsmadeeasy.com/services/rest-api/
根據文檔的認證要求被定位如下:
- 創建的字符串表示以HTTP格式顯示當前日期和時間。例如: 週六,2011年2月12日20時59分04秒GMT
- 計算使用你的密鑰作爲哈希密鑰字符串的十六進制HMAC SHA1哈希。
- 使用您計算的API密鑰,當前日期和時間以及HMAC散列來設置請求標頭的值。
所以我想通了,如何讓日期和計算哈希:
REQUEST_DATE = Time.now.httpdate HMAC = OpenSSL的:: HMAC.hexdigest( 'SHA1',SECRET_KEY,REQUEST_DATE)
所以我的問題有三個部分:
首先,當我向Web服務發送我的請求時,如何將這些信息插入到HTTP標頭中?
其次,我怎樣才能把所有這些放在我的ActiveResource類繼承的超類中,這樣我就不必爲Domain和ResourceRecord的類擔心了嗎?
第三,在您的應用程序中是否存儲API和密鑰的最佳做法,即應該使用初始化程序完成,還是最好使用環境變量?
對於這種工作流程的任何提示和技巧將非常感激。
感謝
真棒,感謝的是,會試試看。 – 2012-03-26 05:52:17
如果您認爲我回答了您的問題,您可以將其標記爲已接受:) – Nobita 2012-03-26 14:48:28