Oauth是什么:web
1.Oauth是一种安全认证的协议;安全
2.Oauth为用户资源的受权提供了一个安全的、开放而又简易的标准;ide
3.Oauth的受权不会使第三方触及到用户的帐号信息(用户名和密码)。网站
好比说新浪微博开放平台属于第一方,新浪微博用户属于第二方,则第三方就能够是开发者开发的新浪微博客户端应用。第三方的应用不须要接受用户的用户名和密码,用户名和密码只提交给新浪微博开发平台,而不会提交给第三方的应用,即第三方无需使用用户的用户名和密码就能够申请该用户资源的受权,所以Oauth是安全的。视频
Oauth当中的角色:资源
1.Service Provider(服务提供方):开发
服务提供方一般是网站,在这些网站当中存储着一些受限制的资源,如照片、视频、联系人列表等。这些网站一般使用用户名和密码来确认用户的身份。好比新浪微博的开放平台就是Service Provider。博客
2.User(用户):微博
存放在服务提供方的受保护的资源的全部者。用户持有能够登陆服务提供者网站的用户名和密码。用户不但愿把本身的资源公开,可是用户却须要将这些资源共享给其余网站或应用程序(如用户但愿使用第三方开发的新浪微博客户端来访问本身的资源,但又不但愿第三方应用知道本身的用户名和密码)。登录
3.客户端(Client):
要访问服务提供方资源的第三方应用,能够是web应用程序、桌面应用程序或者是手机应用程序。客户端须要获得受权以后才能访问相应的资源。
Oauth的认证和受权过程:
1.用户使用第三方的客户端(如访问第三方的网站,或使用第三方的应用),想对存放在服务提供者的某些资源进行操做。
2.第三方网站或应用向服务提供方请求一个临时令牌(Request Token)。
3.服务提供方验证第三方的身份后,授予其一个临时令牌。
4.第三方得到临时令牌后,将用户引导至服务提供方的受权页面请求用户受权。在这个过程当中将临时令牌和客户端的回调链接发送给服务提供者。
5.用户在服务提供者的受权页面上输入本身的用户名和密码,而后受权该客户端访问相应的资源。
6.受权成功后,服务提供方引导用户返回第三方网站的的网页。
7.客户端根据临时令牌从服务提供方那里获取访问令牌(Access Token)。
8.服务提供方根据临时令牌和用户的受权状况授予客户端访问令牌。
9.客户端使用获取的访问令牌访问存放在服务提供方上的相应的资源。
举个例子来讲:有时候访问某个网站不用注册就能够经过新浪微博帐号,QQ帐号登录,这里就是利用的Oauth认证,如点击QQ帐号登录,会跳转到QQ开发平台的受权登录界面,输入qq号和密码后就能够用QQ号直接登录第三方的网站了,根据用户的受权状况,第三方网站会访问到用户相应的资源。