2008-12-06 76 views
3

我知道必須有一個明顯的解決方案來解決這個問題,所以我非常感謝有人啓發我,所以我不旋轉我的車輪...如何調試訪問OAuth安全API的ASP.Net應用程序?

我正在寫一個ASP.Net應用程序將與服務API(Evernote專門)進行交互。 Evernote需要安全性的OAuth,然後才能實際與我需要獲取令牌的對象進行交互。

的工作流程是這樣的(它解釋給自己儘可能別人!):

  1. 建立與我的開發API密鑰和祕密密鑰和其他一些OAuth的東西一個網址,將它發送到Evernote到請求訪問令牌。
  2. 將url作爲請求發送到Evernote並將新訪問令牌從響應中拉出
  3. 使用訪問令牌構建另一個URL以向用戶請求身份驗證令牌。該網址轉到用戶必須與之互動才能登錄的頁面(如果尚未登錄),然後授權我的應用程序訪問其帳戶。我構建的url的最後一個參數是一個回調url,將從Evernote的服務器調用。
  4. 如果一切順利,Evernote將請求回調URL並將新身份驗證令牌包含爲參數。
  5. 一旦我的服務器收到帶有嵌入式令牌的回調,我就可以使用它,這樣我的應用就可以在隨後的請求中與用戶的筆記進行交互。

問題是我在一個本地盒子上寫這個應用程序,而不是公共域名下的ISP。所以我的回調是到本地主機服務器。當然,localhost是相對的,所以Evernote無法解決我的回調問題......我無法同時接收認證令牌和調試。

必須要解決這個問題,因爲這個認證模型並不是Evernote獨有的(通過很長時間...... Flickr和許多其他服務一樣使用它)。那麼有人可以告訴我如何設置東西,所以我可以得到身份驗證令牌,仍然可以在我的本地盒子上進行調試嗎?

非常感謝幫助!

回答

1

OAuth很難實現。它可能不是你正在尋找的答案,但這是我如何設法完成工作:

  1. 在我的本地開發機器上寫一些代碼。
  2. 運行執行msbuild部署腳本的bat文件(或者掛鉤VS中的post-build事件),並將應用程序部署到測試服務器。
  3. 在測試服務器上運行應用程序。獲取請求令牌並請求授權後,它將重定向到Evernote網站。
  4. 成功授權後,Evernote網站將重定向回我的測試服務器,並將授權的請求令牌交換爲訪問令牌。
  5. 而不是調試(我沒有測試服務器上的VS)我檢查應用程序的日誌(我使用的日誌和寫入文本文件一樣簡單)。
  6. 沖洗和重複

出於測試的目的,我註冊了一個臨時公共子域(例如testing.oauth.mydomain。com),以便Evernote能夠重定向到該網址。

+0

感謝您分享您的流程,Jivko。這是我能想出來做的唯一方法。我希望有一些不那麼痛苦的選擇,我只是俯視。如果我必須上傳,編譯,運行和檢查日誌,那麼開發一些東西需要兩倍的時間......:S – Lindsay 2008-12-07 20:56:16