转载:http://www.cnblogs.com/louis-kerui/articles/2420566.html
Oauth是一种安全认证的协议,Oauth的授权不会使第三方触及到用户名的账号信息(如用户名,密码)
www.oauth.net。
Service Provider(服务提供者):通常是网站,在这些网站当中存在着一些限制的资源。例如图片共享
网站,博客或者微博系统,或者SNS类网站等等。这些网站通常使用用户名,密码来确认用户的身份。
User(用户):用户特有可以登录服务器提供者网站的用户名密码,并且在这些网站上保存了自己的一些
自己的私人信息,用户不希望把这些信息公开,但是用户需要将这些信息共享给其它网站。
Consumer(客户):客户<我们的应用程序>是希望能够访问用户私人信息的应用程序,可以是Web应用程序,桌
面应用程序或者是手机应用程序。Consumer需要得到授权之后才能访问相应资源。
Protected Resource(被保护的资源):这些资源可能是照片,文档和联系人等。
Oauth验证示意图:
Oauth的验证过程:
OAuth认证及授权分为三个步骤,操作过程需要获取各环节所需要的令牌,如下:
- 获取未授权的Request Token(请求令牌);
- 获取用户授权的Request Token(授权令牌);
- 用授权的Request Token换取Access Token(访问令牌);
当应用拿到Access Token后,就可以有权访问用户授权的资源了。上述的三个步骤中,分别请求不同及独立的URI地址,且仅能访问一次。
具体每步执行结果如下:
- A. 使用者(第三方站点)向OAuth服务提供商请求未授权的Request Token。向Request Token URI发起请求,请求需要带上的参数见上图;
- B. OAuth服务提供商同意使用者的请求,并向其颁发未经用户授权的oauth_token与对应的oauth_token_secret,并返回给使用者;
- C. 使用者向OAuth服务提供商请求用户授权的Request Token,即向User Authorization URI发起请求,请求附带上一步拿到的未授权的token(令牌)与其secret(密钥);
- D. OAuth服务提供商将引导用户进行授权认证。该过程可能会提示用户,你想将哪些受保护的资源授权给该应用,此步可能会返回授权的Request Token也可能不返回,如Yahoo OAuth就不会返回任何信息给使用者;
- E. Request Token 授权后,使用者将向Access Token URI发起请求,把上步授权的Request Token换成Access Token;
- F. OAuth服务提供商同意使用者的请求,并向其颁发Access Token与对应的密钥,最后返回给使用者。
- G. 使用者以后就可以使用最后获取到的Access Token来访问用户授权的资源。