2012-05-04 24 views
67

我想測試OAuth的按鈕,但它們都(Facebook,微博,LinkedIn)回來用,似乎信號,我不能測試或從本地URL中使用他們的錯誤。Oauth - 如何測試當地的網址?

人們如何通常與OAuth的東西,開發工作,如果他們似乎都需要一個非開發和非本地連接的環境?

+0

我回答對某個備份:http://stackoverflow.com/a/10410838/604511 – aitchnyu

回答

69

更新2016年10月:現在最簡單:使用lvh.me它總是指向127.0.0.1

以前的答案

由於回調的請求是由瀏覽器發出的,作爲一個HTTP重定向響應,你可以設置你的.hosts文件或等同於點域,是不是localhost至127.0。 0.1。

比方說您註冊下面的回調與Twitter:http://www.publicdomain.com/callback/。確保www.publicdomain.com指向你的hosts文件127.0.0.1,認爲Twitter可以做www.publicdomain.com一個成功的DNS查找,即域必須存在,如果請求的特定回調可能應該返回200個狀態消息。

編輯

我剛剛看了下面的文章:http://www.tonyamoyal.com/2009/08/17/how-to-quickly-set-up-a-test-for-twitter-oauth-authentication-from-your-local-machine/,這是有聯繫的,從這樣一個問題:Twitter oAuth callbackUrl - localhost development

引述的文章:

可以bit.ly使用,一個網址縮短服務。只需縮短[localhost URL,例如http // localhost:8080/twitter_callback]並在Twitter應用程序中將縮短的URL註冊爲回調。

這應該比在.hosts文件中擺弄更容易。

注意,現在(八月'14)bit.ly是不允許鏈接轉發到本地主機;但谷歌鏈接縮短工程。

+37

您還可以使用http://lvh.me/它始終指向127.0.0.1 – McGuireV10

+1

我以爲是服務器調用callbackurl,現在認識到oauth使用客戶端作爲信使,並且在服務器之間沒有連接,這使得它更簡單。 –

+3

值得注意的是,lvh.me由一位叫Levi Cook的紳士所擁有(見https://gist.github.com/levicook/563675),並且是私人擁有的。他看起來像個不錯的人,但它不是全球權威機構的正式授權領域,所以它可能「理論上」在某個時間點停止工作。 –

1

或者你可以使用https://tolocalhost.com/和配置應該如何重定向回調到本地站點。您可以指定主機名(如果與localhost不同,即yourapp.local和端口號不同)。 僅用於開發目的。