OAuth编程:不处理密码,请改用此密码

披露: 您的支持有助于保持网站的正常运行!我们会为此页面上推荐的某些服务收取推荐费.


OAuth是一个系统,允许用户让两个不同的应用程序代表用户彼此通信,而无需告知应用程序用户的密码。毫无疑问,您已经多次使用了该系统,但是您可能并不知道。例如,某些评论系统使您可以使用Facebook或Google+帐户登录。这是通过OAuth完成的.

OAuth如何运作?

想象一下,您有一个WordPress博客,并且希望它在每次发布文章时自动发布一条推文。因此,您将插件WP用于Twitter。您可以使用OAuth而不是告诉插件您的Twitter密码。.

首先,告诉WP到Twitter,希望它使用您的帐户发布推文。因此,Twitter的WP转到Twitter并征求许可。 Twitter将WP赋予Twitter令牌,然后将令牌与令牌一起提供给您,并转到Twitter并授权请求。完成后,WP to Twitter可以为您发布推文.

OAuth简史

2006年,Twitter正在实施OpenID,OpenID是一种广泛使用的系统,该系统允许用户使用一个ID来登录互联网上的许多不同帐户。但是它没有开放的标准来允许构建访问委托API。因此,他们开始研究OAuth,这将允许开发人员创建将请求并授予对网站特定方面的访问权限的应用程序.

最初的规范OAuth 1.0于2007年发布,但直到2010年才正式发布。尽管它是一个非常有用的系统并且得到了广泛使用,但它并未针对某些用途(包括与移动设备一起使用)进行精心设计。因此,在2012年发布了OAuth 2.0。这两个版本不兼容。但是OAuth 2.0更加安全,并且针对不同类型的设备(包括电话甚至设备)设计了“授权流程”.

争议

Eran Hammer是参与OAuth 1.0开发的主要人员之一。他还参与了OAuth 2.0,但是在OAuth 2.0正式发布之前不久,他就放弃了该项目。而且,他对两种版本的OAuth都不满意(您可以在他的演讲中看到这对他来说并不安全),因此他创建了自己的替代版本Oz.

OAuth概述

在尝试将OAuth添加到自己的应用程序中之前,最好先对系统进行总体概述.

  • Hueniverse OAuth简介:Eran Hammer对OAuth 1.0的清晰介绍.
  • OAuth for Dummies:Mark Trapp的OAuth 1.0鸟瞰图.
  • OAuth 2.0简介:OAuth各个版本之间的差异的出色概述.
  • 8步教程预览中的OAuth2:使用PHP的OAuth的简短视频概述.

OAuth入门

OAuth不是开发平台。该工具将用作其他应用程序的一部分。例如,您不想编写只能访问用户的Facebook帐户的程序。您可能出于某种原因想要这样做。因此,如果您正在阅读此页面,则必须具有一些需要OAuth功能才能运行的应用程序,就像我们上面讨论的博客推特插件一样.

总体介绍

以下是一些一般性介绍:

  • 简化了OAuth 2:Aaron Parecki对开发过程的概述.
  • OAuth编码示例:用多种不同语言编写的各种示例.
  • 阅读文档样本代码:常规代码样本以及一些针对特定服务的样本。包括以下示例:
    • 比特桶
    • 的GitHub
    • 谷歌
    • 脸书
    • 领英
    • Tumblr

具体服务

通常,使用OAuth取决于您要连接的服务。大多数服务都有自己的怪癖和扩展。因此,下面我们提供了一些流行服务的教程:

  • 将OAuth与Twitter结合使用:使用多种语言示例对OAuth进行全面介绍.
  • 雅虎! OAuth编码示例:使用BOSS API的OAuth示例.
  • Google OAuth使用者:两腿和三腿OAuth的PHP代码.
  • OAuth2身份验证:使用Facebook帐户登录.
  • Facebook Dialog OAuth教程:使用PHP和Python的详尽示例.

高级OAuth编码

掌握OAuth基础知识之后,您可以通过多种方法继续学习.

图书

如果您真的想认真对待OAuth,则可能应该获得有关它的书。其中有许多提供了详尽的介绍.

  • Ryan Boyd撰写的OAuth 2.0入门:非常简短的介绍,涵盖了OAuth的大部分方面,其中包括有关移动设备的部分.
  • OAuth 2.0:Matthias Biehl撰写的API安全入门:另一本简短的书,强调安全性并将OAuth与OpenID进行了对比.
  • Charles Bihis的Mastering OAuth 2.0:使用最大服务的示例的完整介绍.
  • 进阶API安全性:Prabath Siriwardena撰写的OAuth 2.0,OpenID Connect,JWS和JWE来保护API:有关安全性的通用书籍,着眼于各种协议的各种版本.

在线论坛

关于OAuth的一般在线论坛没有太多可用的内容。一般而言,论坛专注于特定服务.

  • Stack Overflow OAuth标记的文章:编程问题的终极站点,里面有大量知识渊博的人.
  • Getty Image API论坛:有关Getty Images API的信息,但有很多有用的信息.
  • 雅虎! OAuth授权模型:访问Yahoo!通过搜索工具开发网络.

OAuth工具

许多服务提供了促进OAuth的工具.

  • OAuth 1.0协议:原始协议.
  • OAuth 2.0:规范的最终版本以及可用库的列表.
  • 使用OAuth 2.0访问Google API:Google的出色资源,包括OAuth 2.0 Playground.

图书馆

有关完整的库列表,请参见oauth.net。以下是一些额外的内容,包括OAuth 1.0的一些内容:

  • PHP.net OAuth:面向对象的OAuth 1.0库.
  • OAuth for Ruby:用于实现OAuth客户端和服务器的RubyGem.
  • OAuth2 C#库:有许多可用的C#库.
  • Oauth 1.0.1:OAuth 1.0的Python库.

向前走

由于OAuth本身并不是目的,而是一种允许您为程序添加更大功能的工具,因此您很可能会边做边学。我们在这里介绍了很多资源,可帮助您入门并深入研究系统。如何使用取决于您自己.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me