授权机制说明

跳转到: 导航, 搜索
(授权机制说明)
(授权机制说明)
第4行: 第4行:
  
 
===OAuth===
 
===OAuth===
 +
OAuth是一种国际通用的授权方式,它的特点是不需要用户在第三方应用输入用户名及密码。OAuth的技术说明可参看官方网站 http://oauth.net (英文)。
  
OAuth是一种国际通用的授权方式, OAuth的官方技术说明可参看 http://oauth.net/2/ (英文)。
+
微博系统中,OAuth的Access token不会过期,只有用户手工撤销授权或新浪收回您的app访问权限access token才会失效。
  
 +
目前OAuth只支持授权读写访问,授权的应用可以获取用户数据及发表微博。目前暂时不支持只读权限授权。
  
新浪微博开放平台已推出OAuth2.0,同时提供对Web,桌面和移动应用程序的支持,并较1.0相比整个授权验证流程更简单更安全。也是未来最主要的用户身份验证和授权方式。
+
====桌面应用的OAuth使用方式====
 +
OAuth协议规范由于需要输入密码之后跳转到callback URL, 因此并不十分适合桌面软件(非Web软件)。我们采用输入PIN的方式来激活纯桌面应用。具体流程为:
  
 +
# 第三方应用软件向API调用获得request token
 +
# 用户打开网页跳转到新浪微博网站输入用户名及密码。
 +
# 验证通过之后,用户会看到一个PIN码。
 +
# 新浪验证通过网页界面提示用户需要到应用软件输入PIN码。
 +
# 第三方应用软件提示用户输入PIN码。
 +
# 第三方应用软件将PIN作为oauth/access_token接口的oauth_verifier parameter参数传入,获取access_token.
 +
# API接口返回后续请求所需access_token
  
开发者需要根据不同的应用场景,选择适用的OAuth授权流程:
 
  
*微博登录或者站外Web应用,请参考:Web应用的验证授权(Authorization Code)
+
====桌面应用的xAuth使用方式====
 
+
xAuth是OAuth针对桌面、移动应用的一个简化版本,减去了到Web页面callback URL授权的步骤。桌面应用可以使用xAuth替代HTTP验证
*桌面和无线客户端应用,请参考:客户端的验证授权(Resource Owner Password Credentials)
+
<br/>
 
+
xAuth因为安全问题并不直接开放,需要单独申请。详情参考:[[XAuth|xAuth相关说明]]
*Javascript类应用,请参考:Javascript Client的验证授权(Implicit Grant)
+
 
+
*微博站内应用,请参考 [[站内应用开发指南]]。
+
 
+
 
+
查看完整的[[Oauth2|Oauth2.0开发指南]]
+
 
+
 
+
如果你仍在使用[[Oauth|Oauth1.0]]或者[[XAuth|xAuth]],请进入浏览相关文档。
+
  
 
===HTTP普通鉴权(Basic Authentication)方式 <span style="color:red">已不再支持</span>===
 
===HTTP普通鉴权(Basic Authentication)方式 <span style="color:red">已不再支持</span>===

2011年10月12日 (三) 01:18的版本

目录

授权机制说明

大部分REST API的访问如发表微博,获取私信都需要用户身份。目前用户身份鉴权有OAuth和Basic Auth两种方式。

OAuth

OAuth是一种国际通用的授权方式,它的特点是不需要用户在第三方应用输入用户名及密码。OAuth的技术说明可参看官方网站 http://oauth.net (英文)。

微博系统中,OAuth的Access token不会过期,只有用户手工撤销授权或新浪收回您的app访问权限access token才会失效。

目前OAuth只支持授权读写访问,授权的应用可以获取用户数据及发表微博。目前暂时不支持只读权限授权。

桌面应用的OAuth使用方式

OAuth协议规范由于需要输入密码之后跳转到callback URL, 因此并不十分适合桌面软件(非Web软件)。我们采用输入PIN的方式来激活纯桌面应用。具体流程为:

  1. 第三方应用软件向API调用获得request token
  2. 用户打开网页跳转到新浪微博网站输入用户名及密码。
  3. 验证通过之后,用户会看到一个PIN码。
  4. 新浪验证通过网页界面提示用户需要到应用软件输入PIN码。
  5. 第三方应用软件提示用户输入PIN码。
  6. 第三方应用软件将PIN作为oauth/access_token接口的oauth_verifier parameter参数传入,获取access_token.
  7. API接口返回后续请求所需access_token


桌面应用的xAuth使用方式

xAuth是OAuth针对桌面、移动应用的一个简化版本,减去了到Web页面callback URL授权的步骤。桌面应用可以使用xAuth替代HTTP验证
xAuth因为安全问题并不直接开放,需要单独申请。详情参考:xAuth相关说明

HTTP普通鉴权(Basic Authentication)方式 已不再支持

Basic Authentication是一种通过HTTP头传递用户身份的授权方式。在非HTTPS方式下使用存在密码被窃听风险。 采用普通鉴权(Basic Authentication)时app_key(consumer key)通过请求参数直接传递,参数名为 source=consumer key,如

curl -u user:password -d "source=10001&status=api test" http://api.t.sina.com.cn/statuses/update.xml

Basic Auth编程也可以参看这篇文章 http://www.cnblogs.com/QLeelulu/archive/2009/11/22/1607898.html