2011-09-09 83 views
7

我正在構建一個多租戶應用程序,我在掙扎合併Facebook登錄到Web應用程序。如何爲子域配置Facebook應用程序

租戶使用例如一個子域

http://tenant-1.domain.com/ 
http://tenant-2.domain.com/ 
http://tenant-3.domain.com/ 

所以,我已經創建了一個應用程序,當它涉及到添加網站,我怎樣才能使它在所有租戶可用?喜歡的東西:

enter image description here

不過,當然,這是不行的,如果我補充一點http://domain.com/它不工作,要麼在http://tenant-1.domain.com/一旦我點擊<fb:button-login>我得到:

enter image description here

我該如何做到這一點,而不是爲每個租戶創建一個特定的FB應用程序?

我使用這個幫助的人來訂閱他們的帳戶,我只是想在登錄得到姓名和電子郵件,或者他們需要下降,最多的姓名和電子郵箱...

回答

4

這是不可能的,但有解決方案的選項。我認爲最好的辦法是使用單個域來執行認證,指定爲redirect_uri。在此REDIRECT_URI可以追加一些查詢參數,例如你的REDIRECT_URI可能是:

http://auth.domain.com/auth.php?tenant=tenant-1

然後在auth.php的代碼,你會抓住從查詢字符串這個房客參數,驗證用戶,存儲他們的訪問令牌,然後立即將他們重定向回tenant-1.domain.com

我不確定此解決方案是否您喜歡,但目前無法指定子域進行身份驗證,因此需要此解決方案或類似的解決方法。

+1

不完全是我想要的:(會嘗試其他的東西 – balexandre

+0

其實,這似乎確實工作,如果你在應用程序域中包含http://,請查看此答案以獲取更多信息。 /stackoverflow.com/questions/11932191/facebook-app-on-subdomains-site-url-vs-app-domains這意味着你將不得不爲每個應用程序有不同的子域! – Deano

相關問題