OAuth2基本概念和运作流程
OAuth(开放授权)是一个关于授权的开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如照片,视频,联系人列表),而无需将用户名和密码提供给第三方应用。目前的版本是2.0版,本文将对OAuth2.0的一些基本概念和运行流程做一个简要介绍。主要参考 RFC-6749 。 应用场景 这里有两个典型的例子: 比如你浏览某个网站的技术文章,发现其中某段介绍的不够详细,想留言给作者提问,点击 评论 ,结果发现需要有这个网站的账号才能留言,此时有两个选择,一个是新注册一个此网站的账号,二是点击通过github快速登录。前者你觉得过于繁琐,直接点击了github登录,此时,OAuth的认证流程就开始了。通过引导跳转到github界面,会提示你是否授权该网站使用你的github用户信息,点击确认,跳转回原网站,发现已经使用你的github账号默认注册了一个用户,而且还不需要用户名和密码,便捷高效。 假如有一个云冲印的网站,可以将你存储在Google的照片冲印出来,用户为了使用该服务,必须让云冲印读取Google上的照片。为了拿到照片,云冲印必须得拿到一个用户的授权,如何获取这个用户授权呢?传统方法是用户将用户名和密码告诉云冲印,那么云冲印就可以自由无限制的访问了(相当于用户自己访问),这样显然是不行的,有几个严重的缺点: 云冲印为了保存后续服务,会保存用户的密码,这样很不安全