新浪微博的“OAuth2”真的是OAuth2吗?
我正在为新浪微博开发一个第三方应用,但有些事情让我感到很困惑:他们的“OAuth2”居然不需要签名?
根据他们的API文档(像这个,抱歉只有中文版本),我只需要直接向他们的HTTPS服务器发送一个POST请求,里面带上我的查询参数和两个额外的参数:我的应用密钥(appkey)和明文的access_token。就这么简单,没有签名过程,也没有其他的步骤。
还有一个奇怪的地方是,在移动端的认证过程中,用户需要向应用提供用户名和密码,然后再进行“OAuth2”。
所以当我尝试使用python-oauth2库来处理这个问题时,我完全不知道该怎么做,因为这个“OAuth2”跟我在网上找到的所有示例代码都差得很远。
我想问一下,这真的是标准的OAuth2吗?如果是的话,我该如何用一些现有的普通OAuth库在python中实现它呢?
1 个回答
4
新浪微博提供了三种授权方式,分别是OAuth 1.0、OAuth 2.0和xAuth。
如果你确定自己在使用OAuth 2.0,那就没错,新浪确实采用了标准的OAuth 2.0。你不需要使用python-oauth2库,因为它实际上是为OAuth 1.0设计的。
相反,你应该使用新浪的官方库,可以从这个链接下载:http://code.google.com/p/sinaweibopy/
关于新浪的OAuth 2.0的文档页面在这里:http://open.weibo.com/wiki/%E6%8E%88%E6%9D%83%E6%9C%BA%E5%88%B6%E8%AF%B4%E6%98%8E
现在看来,OAuth 2.0是微博授权的标准和唯一方式。