0

This is related to OpenId authentication. I have implemented the google and yahoo openId auth with java in struts2 but it is achieved through page redirection to openId provider auth page and then back to my own success web-page. But what i wanted was same as facebook auth. were in json object is passed from fb and fb authentication is done in a pop-up. so that redirection can be avoided. Plz help me out.

I have somewhat implemented which is mentioned in this post part1-part4: http://javadeveloperjournal.blogspot.in/2011/08/integrating-openid-into-my-struts-2-app.html

4

3 回答 3

2

首先,我不建议为 Facebook 使用 OpenID,而且 Facebook 不为 OpenID 提供自己的实现,而是依赖于某些第三方的实现。

使用 OAuth 的最佳方式与 OpenID 非常相似,只是在安全性和身份验证级别上有所不同。

在构造 OAuth Dialog 的 URL 时,您可以指定一个参数,即display指示您是否想要页面重定向或弹出页面,默认情况下该参数的值设置为page

请浏览 Facebook 文档以实现 OAuth

使用 Facebook 的 oauth

于 2012-06-15T04:56:57.057 回答
0

正如其他答案所表明的那样,将您传递给 OpenID 提供程序进行登录是规范的一部分。同样与上述 Umesh 一致,Facebook 提供了 Facebook Connect,它不是 OpenId,但允许您使用此方法对用户进行身份验证。

请参阅:Facebook 是 OpenID 提供商吗?

然而,我想补充的是,您不只是跑掉并创建一个基于 OAuth 的身份验证系统,因为 OpenID 不是您想要使用的。OAuth 为您提供的不仅仅是登录身份验证,还有更强大的功能——奇怪的是用户并没有意识到这一点。OpenId 传递您的凭据,OAuth 传递对您数据的访问权限。因此,使用 OpenId,网站可以对我进行身份验证,使用 OAuth,网站可以对我进行身份验证,并且可能可以访问我的所有电子邮件或 Google Drive 中的文档。好消息是您的用户必须明确允许此访问。

但是在隐私方面犯了错误,您可能希望为需要 OAuth 功能的应用程序构建一个令人信服的案例。就像下面文章中的图片一样,要求公证信证明您的身份与要求代客钥匙证明您的身份是不同的。

代客是 OAuth,我需要他们把我的车停在停车场,所以我给了他们一把代客钥匙。它无法打开杂物箱或行李箱,但他们可以打开驾驶员侧的车门并启动点火装置——这就是我需要他们做的所有事情,仅此而已。但是,当我使用个人支票付款时,我不会给杂货店的收银员我的代客钥匙,她只需要查看带照片的身份证件,任何政府颁发的身份证件都可以使用。从技术上讲,我的代客钥匙可以让她打开我的汽车并读取我的 VIN 并可能根据 DMV 数据库对其进行身份验证,但这也应该可以工作,但这可能是矫枉过正。

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

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

于 2012-08-22T04:18:49.977 回答
0

该重定向是 OpenID 规范的强制性部分。无论如何,以这种方式对用户进行身份验证,OpenID 提供者应该支持它。但据我所知,Facebook 并没有。使用 Oauth,facebook 支持它并且它是一个开放标准,所以使用开放标准总是更好。

于 2012-06-16T08:59:13.670 回答