2011-09-27 50 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