OAuth 和 OAuth 2.0 有啥区别? [复制]

Posted

技术标签:

【中文标题】OAuth 和 OAuth 2.0 有啥区别? [复制]【英文标题】:What's the difference between OAuth and OAuth 2.0? [duplicate]OAuth 和 OAuth 2.0 有什么区别? [复制] 【发布时间】:2011-08-04 08:52:11 【问题描述】:

可能重复:How is oauth 2 different from oauth 1

我知道这两个不向后兼容。但是,既然已经实现了 OAuth 1.0,那么切换到 OAuth 2.0 是否容易?谢谢

【问题讨论】:

【参考方案1】:

OAuth 1.0 和 2.0 是两个完全不同的协议。但是,它们旨在解决几乎相同的基本用例集,并且大多数开发新版本的人都有工作 1.0 实现。所以他们都确保升级是微不足道的。

在 2.0 中,您可以在如何发布和验证访问令牌方面获得更多选择。具有早期 2.0 支持的提供者使用通过 HTTPS 发送的不记名令牌,它们本身不包含任何加密。另一个(更好的)选择是使用在设计上与 OAuth 1.0 HMAC-SHA1 相似但更易于使用的 MAC 令牌(没有疯狂的参数规范化)。

主要区别和过渡可能更复杂的是在处理大规模时。 2.0 处理规模明显优于 1.0(这实际上很糟糕)。因此,如果您需要规模化,2.0 将使您的生活更轻松,但要利用它,您需要做一些工作。

【讨论】:

【参考方案2】:

OAuth 2 依靠 https 来保证安全性,您不必再“签署”请求,只需将 API 密钥和令牌作为查询字符串参数发送即可。

它真的很容易实现,你不需要库或类似的东西。

查看 facebook 的 graph api 以开始使用 OAuth2!

【讨论】:

虽然这是真的,但图书馆确实让事情变得容易多了。例如,一个好的库将使从刷新令牌中获取新访问令牌的过程变得非常简单。 我拥有一个库,我可以告诉你,在 OAuth 2.0 的情况下几乎不需要 当然,但是你在做什么流程?【参考方案3】:

OAuth 2.0 尚未最终确定,与 1.0 有很大不同。所以 1.0 的经验对 2.0 的帮助不大,虽然有一些帮助。

正如已经指出的,主要区别在于它依赖 HTTPS 来确保安全,因此您不再需要对请求进行签名。如果不是 XSS 攻击和 Firesheep,这将是一件好事!

【讨论】:

以上是关于OAuth 和 OAuth 2.0 有啥区别? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

org.springframework.security.oauth 和 org.codehaus.spring-security-oauth 有啥区别?

OpenID 和 OAuth 有啥区别

使用 Spring Security 时,oauth 范围和角色之间有啥区别吗? [复制]

oauth2Login 和 oauth2Client 有啥区别?它们的用例是啥?

OAuth 2.0“状态”和OpenID“nonce”参数之间的区别?为啥状态不能被重用?

护照谷歌oauth和护照谷歌令牌有啥区别?