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

简介:   随着Twitter的兴起和国内Sina和QQ等公司的追随,微博现在是如日中天,将传统的SNS给完全比拼下去,微博对于大家来说完全是个尚未完全开采的大金矿,对于一直站在潮流最前端的程序员来说怎么能将上海闵行企业网站制作这么好的机会错失呢。

  随着Twitter的兴起和国内Sina和QQ等公司的追随,微博现在是如日中天,将传统的SNS给完全比拼下去,微博对于大家来说完全是个尚未完全开采的大金矿,对于一直站在潮流最前端的程序员来说怎么能将上海闵行企业网站制作这么好的机会错失呢。

  在这里我抛砖引玉,先介绍下如何在Qt平台上编译QAuth来支持现在微博的通用认证OAuth,

  根据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的值,接着调用ht上海企业网站设计与制作tp://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

image

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

  等完成后键入命令 ms\do_ms

image

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

image

  编译成功后生成的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加入系统环境变量,如图所示

image

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

image

  工程下有很多项目,我们只要编译qca项目即可,直接编译会出错,需要进行下设置,展开qca项目,在Generated Files下的debug和release目录下找到qpipe.moc文件,右键属性,显示下图界面

image

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

  • QCA的Openssl插件

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

image

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

上海闵行企业网站设计与制作rc="http://images.cnblogs.com/cnblogs_com/rockhawk/201101/201101082317514653.png" border="0" alt="image" width="532" height="370" />

  打开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,如图示,

image

  编译之,在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文件中点击右键,属性,如下图所示

image

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

image

  编译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。

目录
相关文章
|
4天前
|
JSON 算法 安全
JWT Bearer 认证在 .NET Core 中的应用
【10月更文挑战第30天】JWT(JSON Web Token)是一种开放标准,用于在各方之间安全传输信息。它由头部、载荷和签名三部分组成,用于在用户和服务器之间传递声明。JWT Bearer 认证是一种基于令牌的认证方式,客户端在请求头中包含 JWT 令牌,服务器验证令牌的有效性后授权用户访问资源。在 .NET Core 中,通过安装 `Microsoft.AspNetCore.Authentication.JwtBearer` 包并配置认证服务,可以实现 JWT Bearer 认证。具体步骤包括安装 NuGet 包、配置认证服务、启用认证中间件、生成 JWT 令牌以及在控制器中使用认证信息
|
3月前
|
存储 开发框架 安全
ASP.NET WebApi 如何使用 OAuth2.0 认证
ASP.NET WebApi 如何使用 OAuth2.0 认证
|
3月前
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
分享一份 .NET Core 简单的自带日志系统配置,平时做一些测试或个人代码研究,用它就可以了
|
3月前
|
Android开发
解决Android、Flutter编译时Gradle报错:javax.net.ssl.SSLException: Connection reset
解决Android、Flutter编译时Gradle报错:javax.net.ssl.SSLException: Connection reset
297 0
|
5月前
|
机器学习/深度学习 JSON 测试技术
CNN依旧能战:nnU-Net团队新研究揭示医学图像分割的验证误区,设定先进的验证标准与基线模型
在3D医学图像分割领域,尽管出现了多种新架构和方法,但大多未能超越2018年nnU-Net基准。研究发现,许多新方法的优越性未经严格验证,揭示了验证方法的不严谨性。作者通过系统基准测试评估了CNN、Transformer和Mamba等方法,强调了配置和硬件资源的重要性,并更新了nnU-Net基线以适应不同条件。论文呼吁加强科学验证,以确保真实性能提升。通过nnU-Net的变体和新方法的比较,显示经典CNN方法在某些情况下仍优于理论上的先进方法。研究提供了新的标准化基线模型,以促进更严谨的性能评估。
139 0
|
6月前
|
机器学习/深度学习 算法 数据可视化
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
MATLAB基于深度学习U-net神经网络模型的能谱CT的基物质分解技术研究
|
开发框架 中间件 .NET
Asp.Net Core认证-Jwt-基础篇
Asp.Net Core认证-Jwt-基础篇
200 0
|
机器学习/深度学习 数据采集 存储
【3-D深度学习:肺肿瘤分割】创建和训练 V-Net 神经网络,并从 3D 医学图像中对肺肿瘤进行语义分割研究(Matlab代码实现)
【3-D深度学习:肺肿瘤分割】创建和训练 V-Net 神经网络,并从 3D 医学图像中对肺肿瘤进行语义分割研究(Matlab代码实现)
261 0
|
开发框架 .NET API
10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用 (下)
10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用 (下)
|
存储 JSON 开发框架
10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用 (上)
10分钟简单学习net core集成jwt权限认证,快速接入项目落地使用