OAuth 2教程
原文: http://tutorials.jenkov.com/oauth2/index.html OAuth 2.0是一种开放式 授权 协议,该协议使得应用程序可以访问彼此的数据。例如:一个游戏应用可以访问Facebook中的用户数据,或者基于位置的应用程序可以访问Foursquare应用程序的用户数据( user data )等。 OAuth 2.0被用于通过应用程序共享数据的示例如上图。 首先用户进入游戏的web应用,该应用要求用户通过Facebook账户登录,并定向到Facebook的登录界面,用户登录Facebook后,会重定向到之前的游戏应用。此时该应用就访问到了用户在Facebook的用户数据以及授权信息,并代表用户在Facebook中调用功能(例如发布状态更新)。 OAuth 2.0 用例 OAuth 2.0既可以用于在某个应用内访问其它应用的用户信息(比如上例中的游戏应用),又可以提供用户授权服务供其它应用调用(比如上例中的Facebook)。 OAuth 2.0是OAuth 1.0的替代,因为OAuth 1.0太复杂了,比如OAuth 1.0要求使用证书等。OAuth 2.0更加简单,不要求使用证书,仅使用SSL/TLS。 OAuth 2.0 规范 这个教程的目的是提供一个OAuth 2.0协议的概览以帮助理解,而不是涵盖此协议的所有细节。 如果你计划实现一个OAuth 2.0协议,最好是去阅读规范的详细内容,规范的地址:http://tools.ietf.org/html/draft-ietf-oauth-v2-23 OAuth 2.0 概述 在之前的介绍中我们提到,OAuth 2.0是一个开放标准,其允许某个应用程序访问其它应用程序的用户授权的数据。现在我们来介绍这个协议是如何工作的,以及规范中提到的各种概念。 OAuth 2.0 提供了不同的方式使得客户端应用获得权限去访问存储在资源服务器中的资源。现在介绍其中最安全和最常用的使用方式: 一个web应用请求访问另一个web应用 的资源。 下面的示例图描述了整个认证过程: 首先,用户访问客户端Web应用程序,在这个应用程序里有“通过Facebook登录”(或谷歌或Twitter等其他系统)的按钮。 第二步,当用户点击这个按...