授权机制说明
(→HTTP普通鉴权(Basic Authentication)方式) |
|||
第21行: | 第21行: | ||
# API接口返回后续请求所需access_token | # API接口返回后续请求所需access_token | ||
− | ===HTTP普通鉴权(Basic Authentication)方式=== | + | ===HTTP普通鉴权(Basic Authentication)方式 <span style="color:red">已不再支持</span>=== |
[http://en.wikipedia.org/wiki/Basic_access_authentication Basic Authentication]是一种通过HTTP头传递用户身份的授权方式。在非HTTPS方式下使用存在密码被窃听风险。 | [http://en.wikipedia.org/wiki/Basic_access_authentication Basic Authentication]是一种通过HTTP头传递用户身份的授权方式。在非HTTPS方式下使用存在密码被窃听风险。 | ||
采用普通鉴权(Basic Authentication)时app_key(consumer key)通过请求参数直接传递,参数名为 source=consumer key,如 | 采用普通鉴权(Basic Authentication)时app_key(consumer key)通过请求参数直接传递,参数名为 source=consumer key,如 |
2011年4月7日 (四) 15:21的版本
目录 |
授权机制说明
大部分REST API的访问如发表微博,获取私信都需要用户身份。目前用户身份鉴权有OAuth和Basic Auth两种方式。
OAuth
OAuth是一种国际通用的授权方式,它的特点是不需要用户在第三方应用输入用户名及密码。OAuth的技术说明可参看官方网站 http://oauth.net (英文)。
微博系统中,OAuth的Access token不会过期,只有用户手工撤销授权或新浪收回您的app访问权限access token才会失效。
目前OAuth只支持授权读写访问,授权的应用可以获取用户数据及发表微博。目前暂时不支持只读权限授权。
桌面应用的OAuth使用方式
OAuth协议规范由于需要输入密码之后跳转到callback URL, 因此并不十分适合桌面软件(非Web软件)。我们采用输入PIN的方式来激活纯桌面应用。具体流程为:
- 第三方应用软件向API调用获得request token
- 用户打开网页跳转到新浪微博网站输入用户名及密码。
- 验证通过之后,用户会看到一个PIN码。
- 新浪验证通过网页界面提示用户需要到应用软件输入PIN码。
- 第三方应用软件提示用户输入PIN码。
- 第三方应用软件将PIN作为oauth/access_token接口的oauth_verifier parameter参数传入,获取access_token.
- API接口返回后续请求所需access_token
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