apigw鉴权分析(1-4)新浪微博开放平台 - 鉴权分析

一、访问入口

http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E

微博开放接口的调用,如发微博、关注等,都是需要获取用户身份认证的。

目前微博开放平台用户身份鉴权主要采用的是OAuth2.0。

另外,为了方便开发者开发、测试自己的应用,我们还提供了Basic Auth的身份鉴权方式,但Basic Auth仅适用于应用所属的开发者自己调用接口。

OAuth2.0概述

OAuth2.0较1.0相比,整个授权验证流程更简单更安全,也是未来最主要的用户身份验证和授权方式。

关于OAuth2.0协议的授权流程可以参考下面的流程图,其中Client指第三方应用,Resource Owner指用户,Authorization Server是我们的授权服务器,Resource Server是API服务器。

开发者可以先浏览OAuth2.0的接口文档,熟悉OAuth2.0的接口及参数的含义,然后我们根据应用场景各自说明如何使用OAuth2.0。

新版授权页改变了之前页面信息元素过多,对用户使用带来干扰的问题,登录和授权这两个行为已在新版中分离,用户能够更好地理解帐号登录和授权的过程,也为未来更多的功能带来承载空间。

当前一个最完整的授权分为三个步骤:登录-普通授权-高级授权(SCOPE)。但这三个步骤并不是必然出现,当用户的微博处于登录状态时,页面会自动跳转到普通授权页,“高级授权”同样也不是必须,如果开发者不申请SCOPE权限,系统会自动跳过此步骤,回调应用。我们在灰度测试中统计发现,只要合理的使用高级授权,开发者完全不必担心增加操作所带来的页面流失率问题,相反,一个清晰的授权体验更能获取用户的信任。

与此同时,授权项将会变的更加有条理,之前的普通权限将作为基础服务,用户不再有感知,与用户隐私相关的会归到高级授权,用户在授权时有权利逐条取消,进一步增强了隐私控制。

开发者需要根据各自的应用场景,选择适用的OAuth2.0授权流程:

    • 1、PC端和Web网站,请参考:Web网站的验证授权(Authorization Code)
    • 2、移动端应用可直接使用官方移动SDK,通过呼起微博客户端(未安装微博客户端的会呼起H5授权页)方式授权
    • 3、H5轻应用,请参考 轻应用开发指南

二、鉴权方式分析

1、web应用授权

2、手机应用授权

3、授权的有效期

4、使用OAuth2.0调用API

三、分解结论

四、其他信息

OAuth2.0相关资源

以下SDK包含了OAuth2.0及新版API接口

     
下载Android SDK 下载iOS SDK 下载WP7 SDK
下载PHP SDK(由SAE维护) 下载Java SDK 下载Python SDK
下载Flash SDK 下载Javascript SDK 下载C# SDK

移动开发SDK说明文档

     
Android SDK 说明文档 iOS SDK 说明文档 WP7 SDK 说明文档

其他参考资料

OAuth是一种国际通用的授权方式, OAuth2.0的官方技术说明可参看 http://oauth.net/2/

如果你仍在使用Oauth1.0,请进入浏览相关文档。

OAuth2.0 错误码

微博OAuth2.0实现中,授权服务器在接收到验证授权请求时,会按照OAuth2.0协议对本请求的请求头部、请求参数进行检验,若请求不合法或验证未通过,授权服务器会返回相应的错误信息,包含以下几个参数:

  • error: 错误码
  • error_code: 错误的内部编号
  • error_description: 错误的描述信息
  • error_url: 可读的网页URI,带有关于错误的信息,用于为终端用户提供与错误有关的额外信息。

错误信息的返回方式有两种:

1. 当请求授权Endpoint:https://api.weibo.com/2/oauth2/authorize 时出现错误,返回方式是:跳转到redirect_uri,并在uri 的query parameter中附带错误的描述信息。

2. 当请求access token endpoing:https://api.weibo.com/oauth2/access_token 时出现错误,返回方式:返回JSON文本。例如:

JSON


1

2

3

4

5

{

    "error""unsupported_response_type",

    "error_code": 21329,

    "error_description""不支持的ResponseType."

}

OAuth2.0错误响应中的错误码定义如下表所示:

错误码(error) 错误编号(error_code) 错误描述(error_description)
redirect_uri_mismatch 21322 重定向地址不匹配
invalid_request 21323 请求不合法
invalid_client 21324 client_id或client_secret参数无效
invalid_grant 21325 提供的Access Grant是无效的、过期的或已撤销的
unauthorized_client 21326 客户端没有权限
expired_token 21327 token过期
unsupported_grant_type 21328 不支持的 GrantType
unsupported_response_type 21329 不支持的 ResponseType
access_denied 21330 用户或授权服务器拒绝授予数据访问权限
temporarily_unavailable 21331 服务暂时无法访问
appkey permission denied 21337 应用权限不足

OAuth2.0相关问题,查看 OAuth2.0相关问题

时间: 2024-10-15 04:23:21

apigw鉴权分析(1-4)新浪微博开放平台 - 鉴权分析的相关文章

开放平台鉴权以及OAuth2.0介绍

OAuth 2.0 协议 OAuth是一个开发标准,允许用户授权第三方网站或应用访问他们存储在另外的服务提供者上的信息,而不需要将用户名和密码提供给第三方网站或分享他们数据的内容. OAuth 2.0不兼容1.0. 协议的参与者 RO (resource owner): 资源所有者,对资源具有授权能力的人. RS (resource server): 资源服务器,它存储资源,并处理对资源的访问请求. Client: 第三方应用,它获得RO的授权后便可以去访问RO的资源. AS (authoriz

Oauth2认证以及新浪微博开放平台应用

一.OAuth2.0概述 大部分API的访问如发表微博.获取私信,关注都需要用户身份,目前新浪微博开放平台用户身份鉴权有OAuth2.0和Basic Auth(仅用于应用所属开发者调试接口),新版接口也仅支持这两种方式.OAuth2.0较1.0相比整个授权验证流程更简单更安全,也是未来最主要的用户身份验证和授权方式. 关于OAuth2.0协议授权流程查看OAuth2.0授权流程 ,其中Client指第三方应用,Resource Owner指用户,Authorization Server是我们的授

新浪微博开放平台深度历险

作者:蒋宇捷(hfahe) 版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明. 10月21日补充 解决Ajax跨域的方法 可通过新浪提供的JS SDK解决,详情參考http://open.t.sina.com.cn/wiki/index.php/JS-SDK,须要在server嵌入xd.html文件. 简单介绍 新浪微博开放平台的体系參考了Twitter,两者很相似,包含接口.參数的定义,请求方式等等,假设熟悉Twitter的API,基本能够相同的适用到

使用新浪微博开放平台请求授权登录(获取接口及创建应用过程)

1.登录新浪微博开放平台,点击最上面的文档找到微博API,OAuth授权接口: 2.点击请求授权,获取URL及参数,此时我们还没有创建应用 . 3.创建应用,之后输入自己微博密码,按步骤给应用起名字等等,这里忽略. 4.创建完成之后,点击应用,基本信息里有AppKey及AppModel Secret(这个以后会用) 高级信息设置回调页(随便输入一个网址即可) 测试信息(将测试账号添加) , 5.在浏览器里输入(用苹果自带的浏览器,不要用谷歌) https://api.weibo.com/oaut

新浪微博开放平台API

关于新浪微博开放平台有很多问题,网上文档写的不是很清楚,授权机制把我给难住了 不清楚怎么回事一直报没有权限 EMAIL给开发人员也没回应 偶然尝试到一个方法  States返回了成功 如下代码: 1.在head 引用 <meta property="wb:webmaster" content="8998f19501c5a01c" /> <script src=" http://tjs.sjs.sinajs.cn/open/api/js/w

iOS5.0以上使用新浪微博开放平台OAuth 续(及解决登录无效问题)

新浪微博开放平台为第三方应用提供了简便的合作模式,满足了手机用户和平板电脑用户随时随地分享信息的需求.通过调用平台的api即可实现很多微博上的功能. 本篇主要目的是记录新浪微博移动SDK iOS版本的在iOS5下的嵌入和使用. 1.申请一个新浪微博的移动应用 . 申请地址:http://open.weibo.com/development,申请后得到App key 和 App Secret 2.下载iOS_sdk 下载地址:http://open.weibo.com/wiki/SDK#iOS_S

PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用基础

1.新浪微博开放平台(http://open.weibo.com/wiki/index.php/Quickstart)        开放的是什么:开放平台开放给开发者的是每一个用户的用户关系,开发者不在向传统应用那样面对单个开发者而是面对用户身后的整个好友圈.每一个API都是围绕好友与好友之间的交流来提供相关的功能,如发送微博,查看好友资料等等.        为什么要使用开放平台?开放平台可以加快应用的推广.每个用户可以影响到周围的好友,一旦应用真的优秀,用户可以方便的推荐给好友,好友又可以

IOS基于新浪微博开放平台微博APP

1.基于新浪微博开放平台APP源代码 2.gitHub源码下载地址 https://github.com/whzhaochao/SinaWeiBoOpen/blob/master/readme.md

裴东辉-如何使用新浪微博API开放平台进行程序开发http://www.cnblogs.com/dhsunny/p/3578399.html?utm_source=tuicool&amp;utm_medium=referral

前段时候抓取微博的数据,想着自己使用htmlunit来模拟登陆新浪微博来抓取数据,这两天看了新浪微博的官方API,发现通过新浪微博的官方API 来获取新浪微博信息,更全面,更简单.下面就从注册新浪微博,到在新浪微博开放平台上面完善开发者信息,然后创建应用,从而获取Access Token,最后开发自己的应用程序. 1注册126邮箱 02注册新浪微博 03登陆新浪微博 04登陆新浪开放平台 05查看微博API 06可以看到有获取用户关注的用户信息列表 07打开api测试工具 08创建应用获取Acc