zoukankan      html  css  js  c++  java
  • 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相关问题

  • 相关阅读:
    搜狗输入法招聘数据挖掘、自然语言处理实习生
    python 备忘
    从零开始
    [转]随笔
    重学python
    关于tensorflow conv2d卷积备忘的一点理解
    python args kwargs 传递参数的区别
    something backup
    R语言命令汇总
    newwork setup
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/7147054.html
Copyright © 2011-2022 走看看