2014-09-03 44 views
1

我使用MVC與Owin外部登錄Facebook。Facebook PopUp登錄Owin

歐文不打開Facebook登錄爲popup.It重定向頁面到Facebook。

我知道有一個選項可以使facebook登錄以popup的方式打開。我們需要在URL中添加「& dialog = popup」。

我沒有OWIN這個選項。

有沒有辦法做到這一點?

+0

該彈出窗口是一個JavaScript API功能。由於它需要在頁面上與JavaScript進行交互,因此無法將您完全重定向到Facebook。但是,對於傳統的OAuth,重定向就是它的工作原理。所以,不,你不能使用彈出窗口。 – 2014-09-03 13:51:07

回答

3

我有同樣的問題。通過閱讀源代碼後,我發現了一個解決方案:

基本上:您需要繼續爲Facebook創建身份驗證提供程序。所以創建一個繼承自FacebookAuthenticationProvider的類。在這個類中,重寫「ApplyRedirect」方法。讓它看起來像:

public override void ApplyRedirect(FacebookApplyRedirectContext context) 
{ 
    context.Response.Redirect(context.RedirectUri + "&display=popup"); 
} 

現在只需線該類了你的配置,例如:

app.UseFacebookAuthentication(new FacebookAuthenticationOptions 
{ 
    Provider = new **<the name of the class that you created>**() 
    // the rest of your configuration such as app ID and secret 
}); 

這應該是它!