文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>微博是个大金矿,使用VS2010编译QOAuth支持微博通用认证OAuth实现SINA微博登陆

微博是个大金矿,使用VS2010编译QOAuth支持微博通用认证OAuth实现SINA微博登陆

时间:2011-01-08  来源:风雷云雪电

 

根据Twitter的API Wiki,基本的OAuth验证workflow如下:
1. 程序利用http://api.twitter.com/oauth/request_token来从twitter.com那里获取一个request token。
2. 然后程序引导用户到http://api.twitter.com/oauth/authorize页面。
3. 用户如果同意授权,twitter.com则会显示一个7位数字的PIN码。
4. 用户需要将PIN码复制,然后回到程序那里。
5. 之后程序要提示用户输入得到的PIN码。
6. 然后程序将PIN码作为参数oauth_verifier的值,接着调用http://api.twitter.com/oauth/access_token去核实PIN码,从而将request_token 换成access_token。
7. Twitter之后会返回一个access_token,程序就此token来生成之后的OAuth签名。

OAuth本身不是很复杂,不过如果有个库可以作为验证的helper的话,就可以省事很多了,由于最近一直在用Qt做开发,在上篇文章中我介绍了Qt并介绍了如何在VS2010中编译Qt环境,如果对Qt不熟悉的朋友可以点这里查看。顺理成章的是我希望在Qt框架下找到一个能支持OAuth的类库来简化开发,通过放狗进行搜索,搜到有个QOAuth的东西,是在Qt下的OAuth库,不过仔细一看,原来在使用QOauth之前还需要OpenssL,QCA和QCA的OpenssL插件,晕啊!

 

闲话就不说了,咱们进入正题

 

  • openssL

首先得到OpenssL的官网上下载OpenssL,http://www.openssl.org/,我下载的是openssl-1.0.0c.tar.gz,也是最新的,如果大家不想编译也可以到网上搜索别人编译好的库。

下载好后解压缩到硬盘中,我的路径是 H:\openssl-1.0.0c,由于OpenssL使用Perl生成makefile,所以需要先下载Perl,我下载的ActivePerl,下载好后进行安装。

Perl安装好后,运行Visual Studio Command Prompt (2010),不要运行普通的控制台。

键入命令 perl Configure VC-WIN32

如果输入错误会有明显提示,需要注意的是VC-W32必须是大写

等完成后键入命令 ms\do_ms

等完成后输入 nmake -f ms\ntdll.mak

编译成功后生成的lib,dll等库文件在out32dll中,头文件在include中,这些目录在以后的编译中需要加入到项目头文件目录和lib包含目录中。

  • 编译支持OpenssL的Qt

由于默认情况下Qt编译出来时不支持OpenssL的,需要重新编译下Qt,囧

基本步骤和我这篇文章 Qt简介以及如何配置Qt使用VS2010进行开发 中所描述的基本一致,唯一不同的在于configure的时候需要加上-openssl -I openssL头文件目录 -L openssLlib文件目录

如我的环境下是这样子滴

configure -platform win32-msvc2010 -openssl -I H:\openssl-1.0.0c\include -L H:\openssl-1.0.0c\out32dll

  • QCA

QCA需要到这个网站http://delta.affinix.com/qca/下载,同样的这个网站提供的QCA的OpenssL插件下载

QCA我下载的 qca-2.0.3.tar.bz2

QCA的OpenssL插件我下载的是 qca-ossl-2.0.0-beta3.tar.bz2

下载好后解压缩到硬盘,我的路径是 H:\qca-2.0.3,打开系统的环境变量,将QTDIR加入系统环境变量,如图所示

打开VS2010,Qt菜单(如果没有这个菜单,请查看我的上一篇文章),Open Qt Project File(.pro)…,选择QCA的安装目录下的qca.pro,稍等一会儿,自动将PRO项目转换成VS2010项目并加载了QCA下的所有项目

工程下有很多项目,我们只要编译qca项目即可,直接编译会出错,需要进行下设置

展开qca项目,在Generated Files下的debug和release目录下找到qpipe.moc文件,右键属性,显示下图界面

在Command Line的最后面加上-DQ_OS_WIN,确定后,再编译,OK一切都安静了

  • QCA的Openssl插件

下载好后解压缩到硬盘,在Visual Studio Command Prompt (2010)中进入压缩目录,我的是在H:\qca-ossl-2.0.0-beta3

执行下面命令: configwin rd

新建一个文本文件,输入WINLOCAL_PREFIX = C:/local,C:/Local可以是任何你想指定的目录,这个目录是作为零时文件的存放路径,将其保存到你的Qt目录下的mkspecs\features目录中,文件名为winlocal.prf,注意不要保存成文本文件,我的保存路径是H:\Qt\2010.05\qt\mkspecs\features,供大家参考。

打开VS2010,Qt菜单(如果没有这个菜单,请查看我的上一篇文章),Open Qt Project File(.pro)…,选择QCA的OpenSSL插件的的安装目录下的qca-ossl.pro,稍等一会儿生成了QCA的OpenSSL插件的VS项目

将OpenssL的头文件路径和lib文件路径添加到项目中

在项目中搜索所有的EVP_md2,一共有4个,加上宏定义#ifndef OPENSSL_NO_MD2…#endif,如图示

编译之,在lib文件夹中获取劳动成果dll和lib文件两颗,拷贝进Qt的Plugins的crypto中,如果没有这个目录,手动建立目录。在以后编译的项目中需要将这个目录拷贝到exe文件的目录中即可。

  • QOAuth

从QOAuth的官方网站https://github.com/ayoy/qoauth下载QOAuth

在硬盘解压缩,我的目录是H:\ayoy-qoauth-18dbc19

通用的打开VS2010,Qt菜单(如果没有这个菜单,请查看我的上一篇文章),Open Qt Project File(.pro)…,选择QOAuth目录下的qoauth.pro,稍等片刻生成项目文件

在qoauth项目中的interface.h文件中点击右键,属性,如下图所示

将.\GeneratedFiles\$(ConfigurationName)\加入到include目录中

编译qoauth项目,成功后在lib文件中找到dll和lib

编译好之后得安装。具体做法是:
将oauth.prf复制到QTDIR\mkspecs\features里面,
将include和src复制到QTDIR\include里面,src里面只需有头文件即可
将生成的dll复制到QTDIR\lib,如果编译时候提示找不到这两个dll,可能是因为这是的dll名字包含版本号,去掉就ok了。。

用了QOAuth之后,编译出来的程序需要
+OpenSSL的链接库:(如果不带上OpenSSL的话,程序仍然可以启动,QCA会显示插件不支持的,然后会中止程序,算是个小陷阱)
-libeay32.dll,libssl32.dll,ssleay32.dll
+QCA的链接库:
-qcad2.dll
+QOAuth的链接库
-qoauth1.dll/qoauthd1.dll

相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载