2011-09-27 38 views
1

我正在嘗試爲我的網站實施Facebook登錄,並且遇到了麻煩。我理解客戶端(JavaScript SDK)和服務器端實現之間的區別,但是對於哪種方法是正確的方法感到困惑。我需要的是將用戶的信息存儲在我的數據庫中(用戶ID,電子郵件,姓名等),所以我知道我需要服務器端的數據。我不想通過JS SDK登錄並將數據發送到後端,因爲它很容易被欺騙,所以以下是我嘗試的:Facebook登錄w/Java Web

我試過使用SDK,一旦用戶登錄後刷新頁面以檢查Facebook放入會話中的Cookie,但似乎並未出現;唯一的Cookie就是會話ID。

此外,我嘗試做一個服務器端實現,但這導致Facebook登錄屏幕在主瀏覽器窗口而不是彈出窗口。這是不可取的,因爲它將用戶帶離我的網站。爲了強制登錄工作流程在一個單獨的窗口中,我想過要彈出一個指向我的登錄URL的子窗口,最終重定向到Facebook,但我不知道用戶何時登錄(I需要刷新主頁面以隱藏Facebook登錄按鈕等)。

任何幫助或想法將不勝感激!我想以正確的方式做到這一點...不是簡單的方法!

+0

您能否使用您選擇Spring Social的解決方案更新該問題?爲什麼..謝謝。 – RHT

+0

看看我對我答覆的回覆。我遵循這些例子到T(對我的網站進行了小小的調整)。我選擇了spring-social,因爲這個實現使得連接到facebook和使用圖形api變得非常簡單。它還很好地集成了springsecurity,這在我在下面的響應中鏈接到的帖子中顯示。 – threejeez

回答

2

底線:在java應用程序中使用spring-social來連接到社交網絡。這是蛋糕!

+0

你是否必須使用spring框架才能工作? – RHT

+0

oauth2上的[spring-social documentation](http://static.springsource.org/spring-social/docs/1.0.x/reference/html/serviceprovider.html#service-providers-oauth2)是一個很好的起點。爲了整合春季安全,我發現[這篇文章](http://blog.trickl.com/?tag=spring-social)非常有幫助。 – threejeez

0

沒有官方的Facebook API用於我知道的標準Java。特別是對於Facebook,您的Java應用程序可以在這裏使用REST API http://restfb.com/

+0

感謝您的回覆。我最後與春季社交一起去了。 Restfb實際上並不處理登錄機制 - 這取決於你。一旦你登錄了,restfb就會變得有用。另一方面,Spring社交處理登錄機制,很好地集成了spring-security,併爲各種fb,twitter等功能提供了一個外觀。 – threejeez