OAuth2.0 认证原理 OAuth 允许用户让第三方应用访问该用户在某一网站上存储的私密资源(如照片、视频、联系人列表),而无须将用户名和密码提供给第三方应用的协议。 OAuth2.0 认证流程如下图: 原理:用户访问 App,App 访问 Authorization Server 请求权限,Authorization Server 得到用户同意后,返回 Token,App 通过这个 Token 向 Authorization Server 索要数据,App 只能从 Authorization Server 获取服务器数据,而无法直接访问 Resource Server。
以Facebook 的 OAuth2.0为例:
(1) App向OAuth Server请求的URL里面带着该App的 id、key、请求的类型、返回一串的 access_token和事件类型code
(2) 回调,跳转到权限确认页面等待用户确认授权
response_type=code&client_id=28653682475872&redirect_uri=example.com&scope=email
该页面通过 redirect_uri,回调到指定的 callback 页面
(3) 利用返回的 access_token,将 App 的 id、key 以及 code 代码 POST 发包到 https: //graph.facebook.com/oauth/access_token 来获取 access_token
(4) OAuth Server返回Token,这时就可以通过 Token 获取用户授权的资源了
|