首先,我了解OpenId用于身份验证,而OAuth用于授权,与网站上的其他问题不同,我不会问哪些应该用于哪个,但是否有人可以为我的问题提供解决方案。
我想允许用户通过他们的LinkedIn / Twitter / Facebook帐户登录我的网站,一旦登录通过LinkedIn,他们也可以授权他们的Twitter和Facebook帐户作为可选的登录方法。这将允许用户通过三者中的任何一个进行身份验证,但最终会将我们网站上的用户帐户作为最终结果。
我还想使用他们提供的授权来获取基本用户详细信息(个人资料图片/名称等)和发布状态更新。
我不想要求用户通过openId使用他们的帐户登录,然后必须通过oauth再次授权同一帐户,以允许我的网站发布到他们的服务提要,并且必须为3个服务中的每一个执行此操作
此问题的任何想法或问题?
答案 0 :(得分: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可能会成为最佳解决方案。
答案 1 :(得分:2)
你看过RPX吗?
答案 2 :(得分:0)
我不想要求用户通过openId使用他们的帐户登录,然后必须通过oauth再次授权同一帐户,以允许我的网站发布到他们的服务提要,并且必须为3个服务中的每一个执行此操作
我担心您必须将用户的帐户分别连接到3个服务中的每个服务。您使用什么平台来构建应用程序?如果它是Ruby,那么像OmniAuth这样的宝石看起来很有希望。