首先,我了解 OpenId 用于身份验证,OAuth 用于授权,与网站上的其他问题不同,我不是在问应该使用哪个,而是问是否有人可以为我的问题提供解决方案。
我想允许用户通过他们的 LinkedIn/Twitter/Facebook 帐户登录到我的网站,例如通过 LinkedIn 登录后,他们还可以授权他们的 Twitter 和 Facebook 帐户作为可选的登录方法。这将允许用户通过这三个中的任何一个进行身份验证,但最终结果是他们在我的网站上的用户帐户。
我还想使用他们提供的授权来获取基本用户详细信息(个人资料照片/姓名等)并发布状态更新。
我不想要求用户通过 openId 使用他们的帐户登录,然后必须通过 oauth 再次授权同一帐户以允许我的网站发布到他们的服务提要,并且必须为 3 项服务中的每一项执行此操作.
对这个问题有什么想法或问题吗?
最佳答案
如果您使用的是 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 可能会成为最佳解决方案。
关于facebook - LinkedIn/Twitter/Facebook 作为 OAuth 和 OpenId 使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2543676/