一、访问入口

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相关问题

转载于:https://www.cnblogs.com/lexiaofei/p/7147054.html

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

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

    一.OAuth2.0概述 大部分API的访问如发表微博.获取私信,关注都需要用户身份,目前新浪微博开放平台用户身份鉴权有OAuth2.0和Basic Auth(仅用于应用所属开发者调试接口),新版接口 ...

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

    作者:蒋宇捷(hfahe) 版权声明:原创作品,欢迎转载,转载时请务必以超链接形式标明文章原始出处 .作者信息和本声明. 10月21日补充 解决Ajax跨域的方法 可通过新浪提供的JS SDK解决,详 ...

  3. 阿里浪时代,新浪微博开放平台何去何从?

    阿里投资新浪微博,普遍视为双赢局面.但满天飞的分析文章里,始终缺少从微博开放平台角度做的点评. 新浪微博一直给开放平台很高地位.去年 12 月架构调整,开放平台地位不降反升,成为独立部门,由副总褚达晨 ...

  4. PHP+新浪微博开放平台+新浪云平台(SAE)开发微博应用——建立微博应用的过程

    PHP+新浪微博开放平台+新浪云平台(SAE) --新浪微博应用开发的一个解决方案 一.PHP+新浪微博开放平台+新浪云平台(SAE)方案的基础 二.建立微博应用的过程 三.PHP SDK中Demo程 ...

  5. 新浪微博开放平台API中page参数的使用方法

    新浪微博开放平台API中page参数的使用方法 在做项目的时候,有时候要调用新浪微博开放平台的API.说实话,新浪微博的API功能很强大,但是API文档写的不是很清楚. 我在做项目的时候,调用了很多A ...

  6. 新浪微博开放平台开发-android客户端(2)

    引言 最近不是太忙,花了一些时间学习android的应用开发.经过两个星期的学习,学习的同时还写了很多的demo示例,可以从基本控件及基本动画效果等示例demo集合大放送,持续更新下载. 从这个星期开 ...

  7. 新浪微博开放平台开发总结

    经过快一个星期的倒腾,终于搞定了新浪微博开放平台的登录.绑定.发微博的功能.记录一下. 开发前的准备: 1. 申请新浪微博开放平台账号 http://open.weibo.com/ 2. 接入网站应用 ...

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

    1.基于新浪微博开放平台APP源代码 2.gitHub源码下载地址 https://github.com/whzhaochao/SinaWeiBoOpen 3.用到的第三放开源库 3.1  RTLab ...

  9. c#调用新浪微博开放平台接口

    在这篇文章中,我们将和大家分享如何通过.NET(C#)调用新浪微博开放平台接口. 使用新浪微博开放平台接口,需要先申请一帐号,申请方法:给@微博开放平台发送私信,或者给open_sina_mblog@ ...

最新文章

  1. 1.3.2 java程序的运行机制和jvm
  2. 小姐姐亲身体验:在阿里数据库科研团队实习是种怎样的体验?
  3. django 中使用 channels 实现websocket
  4. linux部署多个jar 会宕机_部署springboot+vue项目文档(若依ruoyi项目部署步骤)
  5. Js和jQuery的文档就绪函数以及执行次数
  6. wxpython 优秀的界面剂_珠海界面剂
  7. java list 命名空间,Spring JAVA 不同类加载器命名空间的理解
  8. ios android 性能测试工具,史上最全的 iOS 各种测试工具集锦
  9. 新手20天自学吉他入门
  10. http://nianjian.xiaze.com/tags.php?/%E4%B8%AD%E5%9B%BD%E7%B2%89%E4%BD%93%E5%B7%A5%E4%B8%9A%E5%B9%B4%
  11. Linux 服务器上安装 Virtuoso 数据库 并导入数据(超详细)
  12. c语言降序字母,怎么实现对数组的降序排序
  13. 讲解c程序设计语言的比喻,《C语言程序设计》论文关于比喻在《C语言程序设计》课程教学中的应用论文范文参考资料...
  14. 概率论基础知识(二) 随机变量及其分布
  15. 《关山月》赏析-(李白明月姑娘之五)
  16. python 过滤掉字符串中的回车符与换行符(\t\n)
  17. 曹祖圣VB.NET视频学习工具
  18. IntelliJ IDEA / Webstorm 2019.3 PJ方法(永久有效)
  19. 计算机用户名adm,adm那个电脑设置密码忘记了怎么处理
  20. Cadence中原理图模块化

热门文章

  1. [034量化交易] python计算股票涨跌幅比例
  2. 复制内容后自动跳转到淘宝客户端
  3. C#获取SQL 里的RAISERROR错误
  4. Promise 大全
  5. 【黑马程序员】 学习笔记 - Java面向对象
  6. 考研英语作文(扶贫)
  7. 血腥的交易所战场:谁在打破「三国时代」?
  8. Java实现替换文本内容(二)
  9. 通过CPU主频来看性能
  10. 主频越高,性能不一定越好