2012-01-08 23 views
1

我使用omniauth Facebook的處理Facebook的身份驗證加載,它的工作奇妙。然而,在打開一個彈出的對話框的Facebook,這似乎很簡單的文檔中,是不是爲我工作。的Rails 3:Omniauth Facebook的:不會在彈出

devise.rb:

require "omniauth-facebook" 
config.omniauth :facebook, "xxx", "yyy", { :scope => 'publish_stream,publish_actions,email,read_stream,offline_access', :display => 'popup' } 

但是,它不是在一個彈出加載。相反,它轉移到facebook.com然後回來。這就是說,該負載包括「顯示=彈出」,所以代碼被正確讀取URL,它只是沒有在一個模式加載。

這感覺就像一個JavaScript的問題?我不知道什麼Omniauth用來處理模態/ I幀/等有什麼我應該包括在此之前是否行得通呢?

在此先感謝!

回答

3

小時後的研究和試錯時間,我發現一個可行的解決方案。我覺得必須有更多的集成解決方案,但我不知道。

這jQuery將觸發上面的電流FB身份驗證窗口:

$('a.fb-auth').click(function(e) { 
var width = 600, height = 400; 
var left = (screen.width/2) - (width/2); 
var top = (screen.height/2) - (2 * height/3); 
var features = 'menubar=no,toolbar=no,status=no,width=' + width + ',height=' + height + ',toolbar=no,left=' + left + ',top=' + top; 
var loginWindow = window.open('/users/auth/facebook', '_blank', features); 
loginWindow.focus(); 
e.preventDefault(); 
return false; 
}); 

而且回調頁:

<script> 
window.opener.location = "/"; 
window.close(); 
</script> 

(或任何你想要發生父頁)

相關問題