2012-06-14 93 views
0

这与OpenId身份验证有关。 我已经在struts2 中用java实现了google和yahoo openId认证,但是它是通过页面重定向到openId provider认证页面,然后返回到我自己的成功网页实现的。 但我想要的是与Facebook身份验证相同。在json对象中传递来自fb和fb的身份验证是在弹出窗口中完成的。所以可以避免重定向。 Plz帮助我。struts 2 web应用程序中的OpenId身份验证

我有所实现其在这个岗位第一部分,第四部分提到:http://javadeveloperjournal.blogspot.in/2011/08/integrating-openid-into-my-struts-2-app.html

回答

2

首先,我不会建议使用OpenID的为Facebook和Facebook不提供它自己的实现对OpenID的,但依靠一定的第三党的暗示。

使用OAuth的最佳方式,与OpenID仅具有安全性和身份验证级别的差异非常相似。

虽然构建URL的OAuth的对话框,你可以指定一个参数,即display表明,如果你想有一个页面重定向或弹出,默认情况下,这个参数的值设置为page

请通过Facebook的文件执行的OAuth

oauth using Facebook

0

重定向是否OpenID规范的强制部分。无论如何,以这种方式验证用户,OpenID提供商应该支持它。但据我所知,Facebook并不如我所知。使用Oauth,Facebook支持它,它是一个开放标准,因此使用开放标准总是更好。

0

就像其他答案指出的那样,将你传递给OpenID提供者来登录是规范的一部分。同样与上面的Umesh一致,Facebook提供的Facebook Connect不是OpenId,但允许您使用此方法对用户进行身份验证。

参见:Is Facebook an OpenID provider?

我确实想不过补充的是,你不只是出走,因为OpenID是不是你想要使用什么创建基于OAuth认证体系澄清。 OAuth为您提供的不仅仅是登录身份验证,还有更多的功能 - 这是奇怪的用户不知道的。 OpenId传递您的凭据,并且OAuth传递访问您的数据。因此,通过OpenId网站可以对我进行身份验证,使用OAuth网站可以对我进行身份验证,并且可能有权访问我的所有电子邮件或Google云端硬盘中的文档。好的是你的用户必须明确地允许这个访问。

但出于隐私的考虑,您希望为需要OAuth功能的应用程序构建引人注目的案例。就像下面这篇文章中的图片一样,要求公证信函证明你的身份,并要求提供一个代客钥匙来证明你的身份,这是不同的。

一个代客是OAuth,我需要他们把我的车停在停车场,所以我给他们一个代客钥匙。它不能打开手套箱或后备箱,但他们可以打开驾驶员的侧门并开始点火 - 这正是我需要他们做的,而不是。但是,当我用个人支票支付时,我不会在杂货店给我的代客钥匙出纳员,她只需要看照片ID,任何政府颁发的身份证件都可以使用。技术上来说,我的代客钥匙可以让她打开我的车,阅读我的VIN并可能通过DMV数据库进行身份验证,这也可以起作用,但这可能是矫枉过正。

OpenId,OAuth和联合登录有很好的用途,但作为开发者,我们需要了解何时何地应该使用它们。

http://en.wikipedia.org/wiki/OAuth#OpenID_vs._pseudo-authentication_using_OAuth

相关问题