本篇说说关于OAuth授权认证的事情,新浪开放api都必须在这个基础上才能调用,所以有必要专门来讲讲,前面的文章中已经提到过关于新浪微博提供了OAuth和Base OAuth两种认证方式,并且本项目采用OAuth认证方式,至于为什么采用这个OAuth认证而不采用Base OAuth认证原因很简单,自从Twitter只支持OAuth认证方式以来,各大应用都纷纷转向OAuth认证方式,而新浪微博的开放平台也将在近日停止Base OAuth的认证方式。
OAuth的基本概念,OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。同样新浪微博提供OAuth认证也是为了保证用户账号和密码的安全,在这里通过OAuth建立普通新浪微博用户、客户端程序(我们正在开发的这个android客户端程序)、新浪微博三者之间的相互信任关系,让客户端程序(我们正在开发的这个android客户端程序)不需要知道用户的账号和密码也能浏览、发布微博,这样有效的保护了用户账号的安全性不需要把账号密码透露给客户端程序又达到了通过客户端程序写微博看微博目的。这个是OAuth的作用。
结合新浪微博的OAuth认证来说说具体的功能实现,首先罗列一下关键字组,下面四组关键字跟我们接下来OAuth认证有非常大的关系。
第一组:(App Key和App Secret),这组参数就是本系列文本第一篇提到的建一个新的应用获取App Key和App Secret。
第二组:(Request Token和Request Secret)
第三组:(oauth_verifier)
第四组:(user_id、Access Token和Access Secret)
新浪微博的OAuth认证过程,当用户第一次使用本客户端软件时,客户端程序用第一组作为参数向新浪微博发起请求,然后新浪微博经过验证后返回第二组参数给客户端软件同时表示新浪微博信任本客户端软件,当客户端软件获取第二组参数时作为参数引导用户浏览器跳至新浪微博的授权页面,然后用户在新浪的这个授权页面里输入自己的微博账号和密码进行授权,完成授权后根据客户端设定的回调地址把第三组参数返回给客户端软件并表示用户也信任本客户端软件,接下客户端软件把第二组参数和第三组参数作为参数再次向新浪微博发起请求,然后新浪微博返回第四组参数给客户端软件,第四组参数需要好好的保存起来这个就是用来代替用户的新浪账号和密码用的,在后面调用api时都需要。从这个过程来看用户只是在新浪微博的认证网页输入过账户和密码并没有在客户端软件里输入过账户和密码,客户端软件只保存了第四组数据并没有保存用户的账户和密码,这样有效的避免了账户和密码透露给新浪微博之外的第三方应用程序,保证 了安全性。
分享到:
相关推荐
OAuth的核心在于为用户提供一种方式,让他们能够在保持对自己数据控制的同时,让应用能够访问这些数据。 在sina微博开放平台上,OAuth起到了关键作用。开发者首先需要注册并创建应用,获取到App key和Secret key。...
2.1 **OAuth简介** OAuth允许用户授权第三方应用访问他们存储在另一服务上的特定信息,而无需分享其登录凭据。这样,用户可以控制哪些应用可以访问他们的数据,并且可以在任何时候撤销权限。 2.2 **OAuth术语** - *...
### OAuth简介 OAuth是一个开放标准,允许用户让第三方应用访问他们存储在其他服务提供者上的信息,而无需将用户名和密码提供给第三方应用。OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务...
#### 一、OAuth简介及发展历程 ##### 1.1 OAuth概述 OAuth是一种开放的协议,它为Web、移动和桌面应用提供了一种简单且标准化的方法来进行安全授权。简而言之,OAuth允许第三方应用在不获取用户账户密码的情况下,...
#### 一、OAuth简介与重要性 **OAuth** 是一种开放标准协议,用于实现安全授权机制,特别适用于桌面应用和Web应用之间的API授权。它通过简单的标准化方法来管理应用程序间的握手过程,是当前最常用的安全认证方案之...
**OAuth2.0简介** OAuth2.0是一种授权框架,广泛应用于Web API的身份验证和授权。它允许第三方应用在用户授权的情况下,访问该用户的特定资源,而无需获取用户的用户名和密码。OAuth2.0的核心是将认证和授权分离,...
"Spring Cloud与OAuth2整合简介" Spring Cloud与OAuth2整合简介是指将Spring Cloud框架与OAuth2认证协议进行整合,以实现微服务架构中的身份验证和授权管理。OAuth2是目前最流行的身份验证和授权协议之一,广泛应用...
### OAuth 2.0 简介 OAuth 2.0 是一种授权协议,主要目的是为了安全地实现第三方应用与资源服务器之间的数据交换。它适用于那些需要用户授权的应用,如社交媒体登录、云存储服务等。OAuth 2.0 提供了四种授权类型:...
小米OAuth简介 小米帐号开放平台文档 python SDK说明 XMHttpClient.py -- 基础Http请求封装 XMOAuthClient.py -- 针对OAuth授权流程相关http请求封装 XMApiClient.py -- 针对api请求相关http请求封装 DEMO 1. 获取...
**OAuth2.0简介** OAuth2.0 是一个授权框架,允许第三方应用在用户许可的情况下,访问其存储在另一服务提供者上的特定信息。这个框架主要用于保护用户数据,避免将用户的用户名和密码直接暴露给第三方应用,提高了...
**WordPress插件OAuth简介** CBMDF WordPress插件OAuth是一个专为WordPress设计的工具,它扩展了平台的功能,使得用户可以在任何支持OAuth 2.0协议的服务器上进行身份验证。OAuth 2.0是一种授权框架,广泛用于保护...
#### 一、OAuth2简介 OAuth2是一种广泛使用的授权框架,主要用于客户端应用程序安全地访问用户资源的服务。它通过提供一个简单且标准化的方法来实现授权流程,使得各种应用能够安全地交换API密钥,并在不泄露用户...
#### OAuth简介 OAuth是一种开放标准授权协议,它允许第三方应用以安全、标准化的方式获取用户在某个服务提供商上的授权。OAuth解决了传统授权机制中的许多问题,如需要用户在每个网站上单独注册账户等。 - **产生...
Spring Security OAuth简介** Spring Security是Java领域中广泛使用的安全框架,它提供了全面的身份验证和授权服务。OAuth,则是一种开放标准,用于授权第三方应用访问用户在某个服务上的资源,而无需获取用户的...
OAuth2简介** OAuth2的核心是授权,它定义了四种不同的授权类型,旨在适应不同应用场景的安全需求: 1. **授权码模式(Authorization Code Grant)**:适用于Web应用,第三方应用通过获取授权码,再向认证服务器...
#### 二、OAuth2简介与核心价值 **章节1:什么是OAuth2.0以及为什么你应该关心它?** - **定义**:OAuth2.0是一种开放标准协议,用于授权应用程序访问用户在另一个服务上的资源(如数据或服务),而无需直接提供其...
小米帐号开放平台OAuth PHP SDK使用说明小米OAuth简介小米帐号开放平台文档PHP SDK说明php-sdk/httpclient/XMApiClient.php -- 基础Http请求封装php-sdk/httpclient/XMOAuthClient.php -- 针对OAuth授权流程相关http...
一、OAuth简介 OAuth允许用户提供一个令牌,而不是用户名和密码来访问他们存储在特定服务提供者的数据。这种令牌授权方式可以避免用户将用户名和密码暴露给第三方应用,从而提高安全性。OAuth主要分为两个版本:...
### OAuth2简介 OAuth2是一种安全的授权标准,它允许用户授予第三方应用访问其在特定服务上的数据,而无需共享他们的用户名和密码。这种协议广泛应用于社交媒体登录、API访问控制等领域。 ### Laravel OAuth2 社交...