【问题标题】:What is the difference among BasicAuth,OAuth and XAuth?BasicAuth、OAuth 和 XAuth 有什么区别?
【发布时间】:2011-03-20 10:47:02
【问题描述】:

最近我听说 Twitter 将关闭 Twitter API 上的基本身份验证,他们转向 OAuth。

所以我想知道 BasicAuth、OAuth 和 XAuth 有什么区别?

每个Auth的优缺点是什么?

【问题讨论】:

    标签: authentication oauth xauth


    【解决方案1】:

    Twitter BasicAuth 要求应用程序的开发者存储用户的用户名和密码,并将其与每个请求一起传输。

    OAuth 是一个开放标准,用户被重定向到 Twitter,在那里填写他的用户名/密码(或已经登录),然后授予应用程序使用他的帐户的许可。应用程序永远不会看到用户名/密码。

    引用推特页面:

    基本身份验证是一种责任。 通过存储登录名和密码, 开发商承担额外的 安全责任 存储这些凭证;这 登录后对用户的潜在危害 凭据被泄露或滥用是 很高。因为很多用户使用 在许多网站上使用相同的密码, 损坏的可能性不 一定要停止他们的推特 帐户。

    见:http://dev.twitter.com/pages/basic_to_oauth

    注意:我对 xauth 一无所知,所以让其他人来回答。

    【讨论】:

    • 所以 Twitter 说他们的登录名和密码没有存储?那么如何获得令牌呢?
    • 您刚刚触及 OAuth 存在的核心。 Twitter 确实存储了登录名/密码......而且他们是唯一需要知道它们的人。作为开发人员,您不会存储用户名/密码。相反,您将用户重定向到 Twitter。您的用户将在那里填写他们的凭据并将其提交到 Twitter。如果凭据有效,他/她将被重定向回您的应用程序,并在其 URL 中带有令牌。因此,只有您要对其进行身份验证的站点具有凭据,而不是每个想要针对该站点进行身份验证的应用程序。
    • 我明白了。谢谢!
    【解决方案2】:

    xAuth 是 OAuth 的简化版本。它删除了几个步骤,因此您的应用会向 Twitter 的服务器(使用 https://api.twitter.com/oauth/access_token)发送带有用户名和密码的 OAuth 签名的 POST 请求,该请求会直接返回消费者令牌和密码以供其他请求使用。

    在您的应用获得 OAuth 访问权限后,您必须向 Twitter API 团队发送电子邮件,以便为您的应用启用 xAuth。见http://dev.twitter.com/pages/xauth

    【讨论】:

      猜你喜欢
      • 2011-08-04
      • 2016-07-29
      • 2012-12-11
      • 2019-04-18
      • 2012-09-19
      • 2014-10-25
      • 1970-01-01
      • 1970-01-01
      • 2010-10-02
      相关资源
      最近更新 更多