2014-08-27 77 views
0

我花了幾個小時試圖調試這個問題,雖然有幾個答案,我不能得到這個工作,並不明白一些事情。Facebook上的錯誤連接Devise on Rails

我在部署在Heroku上的我的Rails 3應用程序中使用Devise實現了Facebook登錄。我在localhost上工作得很好,而且我也在生產中工作。我不認爲我改變了什麼,但我發現Facebook登錄被破壞,無法弄清楚如何解決這個問題。一些線索可能會敲響一些 -

我得到的錯誤顯示的網址是在下面,並顯示許多其他帖子顯示的錯誤消息。我感到奇怪的是以下 -

  1. 解碼REDIRECT_URI以下鏈接有一個端口號http://www.mygreenneighbor.com:24745/auth/facebook/callback&scope=email,offline_access&

我不認爲在Heroku上的應用程序在此端口24745接聽(其中順便說一句變化當我嘗試它之後),我沒有注意到,之前 - 是否預期?

  1. 當我更改我的Facebook應用程序,並更改網站的URL更改沒有顯示在重定向URI。 FB更改是否需要時間才能生效?

https://graph.facebook.com/oauth/authorize?client_id=159903734070492&redirect_uri=http%3A%2F%2Fwww.mygreenneighbor.com%3A24745%2Fauth%2Ffacebook%2Fcallback&scope=email%2Coffline_access&response_type=code

{ 「錯誤」:{ 「消息」: 「無效REDIRECT_URI:給定URL不是由應用程序配置允許的。」, 「類型」: 「OAuthException」, 「代碼「:191 } }

感謝您的想法/指導。 -S

回答

0

很多周圍挖後,我穿過凸輪本文

http://www.kbedell.com/2011/03/08/overriding-omniauth-callback-url-for-twitter-or-facebook-oath-processing/

我意識到,我已經切換到使用作爲乘客從單挑線程/進程的WEBrick Web服務器我的網絡服務器。 Passenger在同一臺dyno上運行多個進程,顯然它會在請求中發送一個帶有端口號的回調url。要覆蓋上述文章中的建議,並在我的applicaiton.rb文件中設置以下內容:

OmniAuth.config.full_host =「http://www.mygreenneighbor.com」並解決了問題。

希望這可以幫助別人。

-S