OAuth 即:Open Authrization(开放授权), 它是一个开放标准,允许用户让第三方应用访问该用户在某一网站上存储的私密资源,而无需将用户名和密码提供给第三方。比如我们熟知的通过qq/微信/微博等登录第三方平台。OAuth 1.0版本发布后有许多安全漏洞,所以在OAuth2.0里面完全废止了OAuth1.0,它关注客户端开发者的简易性,要么通过组织在资源拥有者和HTTP服务商之间的被批准的交互动作代表用户,要么允许第三方应用代表用户获得访问的权限。读起来有点绕口,其实原理也非常简单,请看下面讲解。
一、首先我们要了解在OAuth2 认证和授权的过程中有这三个角色:
1. 服务提供方:顾名思义,提供受保护的服务和资源的,用户在这里面存了很多东西。
2. 用户: 存了东西(照片,资料等)在服务提供方的人。
3. 客户端:服务调用方,它要访问服务提供方的资源,需要在服务提供方进行注册,不然服务提供方不鸟它呀。
二、OAuth2 认证和授权的过程:
1)用户想操作存放在服务提供方的资源;
2)用户登录客户端,客户端向服务提供方请求一个临时token;
3)服务提供方验证客户端的身份后,给它一个临时token;
4)客户端获得临时token之后,将用户引导至服务提供方的授权页面,并请求用户授权。(在这个过程中会将临时token和客户端的回调链接/接口 发送给服务提供方 ---很明显服务提供方到时会回来call这个接口在用户认证并授权之后)
5)用户输