14

首先,我了解 OpenId 用于身份验证,OAuth 用于授权,与网站上的其他问题不同,我不是在问哪个应该用于哪个,而是是否有人可以为我的问题提供解决方案。

我想允许用户通过他们的 LinkedIn/Twitter/Facebook 帐户登录到我的网站,一旦通过 LinkedIn 登录,他们还可以授权他们的 Twitter 和 Facebook 帐户作为可选的登录方法。这将允许用户通过这三个中的任何一个进行身份验证,但最终在我的网站上使用他们的用户帐户作为最终结果。

我还想使用他们提供的授权来获取基本的用户详细信息(个人资料图片/姓名等)并发布状态更新。

我不想要求用户通过 openId 使用他们的帐户登录,然后必须通过 oauth 再次授权同一帐户以允许我的网站发布到他们的服务提要,并且必须为 3 项服务中的每一项执行此操作。

对此问题有任何想法或问题吗?

4

3 回答 3

10

如果您使用的是 ASP.NET MVC,DotNetOpenAuth是支持 OpenID/OAuth 站点的绝佳解决方案。StackOverflow 正在使用它,他们对网站中使用的代码非常挑剔。

如果 OpenID 与 DotNetOpenAuth 的集成非常简单。我没有尝试过 OAuth,但我不认为它的质量会降低。

不幸的是,Facebook 不支持 OpenID/OAuth,因此您需要使用不同的解决方案。我使用的是 Clarity Consulting 的Facebook Developer Toolkit。它有效,尽管我确实对代码的质量有些抱怨;不幸的是,我还没有找到更好的东西。(注意:如果有人知道更好的选择,请务必告诉我)

Facebook Connect 与 Facebook Developer Toolkit 的基本集成也相对简单。然而,他们的对象模型有些混乱,因为他们试图尽可能地接近 Facebook API,所以 HTTP API 模式正在流失很多。尽管如此,它仍然有效。

更新:既然 Facebook 宣布他们将支持 OAuth 2.0,DotNetOpenAuth 可能会成为最好的解决方案。

于 2010-04-19T03:52:36.450 回答
2

你研究过RPX吗?

https://rpxnow.com/

于 2010-04-14T16:26:32.703 回答
0

我不想要求用户通过 openId 使用他们的帐户登录,然后必须通过 oauth 再次授权同一帐户以允许我的网站发布到他们的服务提要,并且必须为 3 项服务中的每一项执行此操作。

恐怕您必须将用户帐户分别连接到 3 项服务中的每一项。您使用什么平台来构建您的应用程序?如果是 Ruby,那么像OmniAuth这样的 gem看起来很有前途。

于 2010-04-15T14:25:02.007 回答