一、Android常用OAuth登录与分享详解
- OAuth2.0概述:
OAuth2.0是一个关于授权(authorization)的开发网络标准,允许用户让第三方应用访问该用户在某一网站上存储的私密的资源(如图片、视频、联系人列表),而无需将用户名和密码提供给第三方应用。
其中,能拿到Access Token是最最重要的,它是用户身份验证和授权的凭证。 - OAuth运行流程:
Authorization Request:客户端(第三方应用)发起一次认证请求到资源拥有者(用户)
Authorization Grant:对其请求进行授权
Access Token:获取从授权服务器给的令牌
Protected Resource:获取用户所保护的资源文件 OAuth四种授权模式之授权码模式(authorization code),功能最完整,流程最为严密的一种授权模式;特点就是:通过客户端的后台服务器与资源提供上的认证服务器进行的一个互动。
授权码模式请求资源流程图:
据图,我们可以看出:多了一种用户代理(理解为浏览器),那么接下来我们分析分析,授权码模式流程图:
首先第三方应用发起认证请求,通过我们的用户代理转向授权服务器,它在请求的时候会携带认证信息(客户端的身份识别)和重定向URI,当然还会有一些其他的参数,这样一来授权服务器接收到认证请求之后,会去和资源拥有者进行互动(告诉资源拥有者是哪个第三方应用在认证请求资源,是否对此进行授权),如果用户选择了授权那么,收取服务器会返回一个临时授权码给用户代理,接着用户代理再把临时授权码给第三方应用,从而完成第三方应用的第一次请求认证授权,那么,接下来,第三方应用会发起第二次认证请求(会携带临时授权和重定向URI,这个uri要和第一次请求认证时的uri一致,不然就会请求认证失败),如果成功,那么授权服务器就会返回一个令牌给第三方应用,这样就完成了整个授权码模式的流程.
*客户端发起的第一次请求:
- 构建第一次请求:
*客户端发起的第二次请求:(通过临时授权码去换取令牌的过程)