2011-07-16 29 views
5

使用OAuth2以客戶端服務器端模式處理Facebook身份驗證時,是否有任何方式在使用本地開發環境重定向uris時進行測試?在開發環境中使用Facebook身份驗證

顯然你可以在你的計算機上指定你的IP和路由端口80到那個IP,但是有沒有更簡單的方法來實現?

回答

7

你不應該在本地開發Facebook應用程序有任何問題。
只需將Facebook的設置頁面上的網址設置爲http://localhost/yourapp/,並照常工作。
所有OAuth過程都應該正常工作。

+0

感謝您的迴應 - 但是呢?你通過Facebook的自動網址,它可以調用,Facebook如何調用本地主機? – Raiders

+0

Facebook不會「呼叫」您的uri,他們會將您的瀏覽器重定向到他們,並且您的瀏覽器知道您的localhost uri的。只有幾個地方Facebook「呼叫」你的Uri喜歡在Facebook Credits api等在這些地方,你需要將外部IP路由到本地計算機,以便使用這些API – lnetanel

0

根據我迄今爲止的經驗,您可以使用相同的Facebook應用程序進行開發,測試,分期,製作等。關鍵(由lnetanel提及)應用程序應該爲每個環境配置不同的返回URL 。比如,我用設計+ omniauth,並在下面... /配置/初始化/ omnniauth.rb,這是用於構建回網址:

if Rails.env.production? 
    OmniAuth.config.full_host = "https://www.mydomain.com" 
elsif Rails.env.test? 
    OmniAuth.config.full_host = "https://www.stag.mydomain.com" 
elsif Rails.env.development? 
    OmniAuth.config.full_host = "https://localhost.mydomain.com" 
end 

注意,我有添加本地主機的習慣.mydomain.com在我的本地/ etc/hosts文件中,因此在開發過程中沒有跨域問題,但這可能與此無關。