2012-09-14 87 views
0

我試圖用Facebook進行身份驗證我有一個sinatra應用程序與twitter正常工作。使用Facebook omniauth時遇到問題

app.rb

use OmniAuth::Builder do 
provider :twitter, 'xxx', 'yyy' 
provider :facebook, 'xxx', 'yyy', :redirect_uri => 'http://localhost:9393/auth/facebook' 
end 

我引用我在我看來,像Facebook的鏈接,

 %a{:href=>"/auth/twitter"} Sign In To Twitter 
    %a{:href=>"/auth/facebook"} Sign In To Facebook 

,我正在返回

https://graph.facebook.com/oauth/authorize?response_type=code&client_id=268504329935589&redirect_uri=http%3A%2F%2F0.0.0.0%3A9393%2Fauth%2Ffacebook%2Fcallback&state=a88cbf5f83b2faeac173f23138440cddf48cd5faf0039fe6&scope=email

看起來像

{ 
"error": { 
    "message": "Invalid redirect_uri: Given URL is not allowed by the Application  configuration.", 
    "type": "OAuthException", 
    "code": 191 
    } 
} 

據我所知,我的設置看起來是正確的。關於這個問題存在很多帖子被綁定到Facebook和應用程序註冊的網址。

在facebook

,這個程序被註冊爲

Site URL 
http://localhost:9393/ 
Site Domain 
http://localhost:9393/ 

感謝。

回答

1

其實,我找到了答案,

App Domains: localhost/Website with Facebook Login: http://localhost:9393/?

localhost上/?(網址w^FB登錄)是重要的細節

0

嘗試應用程序域:http://localhost/

其在軌

Site URL: http://localhost:3000/ 

App Domains: http://localhost/ 
0

爲我工作,我通常在註冊Facebook的一個開發應用程序和REDIRECT_URI添加到我的hosts文件。通常是這樣的:

127.0.0.1 dev.mycoolapp.com