Brian F爱
从专注于角图,Web技术以yobet英雄联盟及波特兰的Node.js的Google开发人员专家中学习。
广告 ·ultimatecourses.com.
用终极课程学习角度正确的方式

简单的OAuth 1.0使用ColdFusion

作为与REST API集成的项目的一部分,我已经使用ColleFusion开发了一个用于OAuth 1.0的小项目。组件全部以脚本语法编写,因此需要ColdFusion 9来运行它。目标是最小化OAuth两步处理快速而轻松。我以为我会在这里分享它,以防您正在寻找对OAuth 1.0的CFML解决方案。

类图

OAuth包类图

要开始,让我们快速看看类图。正如您所看到的,该软件包包括以下类:

  • 请求
  • 消费者
  • 令牌
  • 披风宣言
  • hmacsha1signaturemethod.

请求Class是创建符号请求的主要类,可用于使用OAuth连接到您喜欢的API。

设置请求

设置请求相当直接。我们将实例化请求消费者令牌对象。然后,我们将根据您正在开发的API指示设置消费者和令牌。在我的示例中,我只会设置消费者秘密和消费者密钥字符串。从那里我们需要创建必要的签名方法对象并签名请求。最后,使用签名请求我们可以将HTTP请求发送到OAuth Producer。

步骤1:实例化请求,消费者和令牌对象。

var req = new com.brianflove.util.outh.request();var fugumer = new com.brianflove.util.ouuth.consumer();var token = new com.brianflove.util.oauth.token();

第2步:配置消费者

消费者.setsecret(变量.buzzstream_secret);Consumer.SetKey(变量.BuzzStream_key);

第3步:设置请求

req.setmethod(“得到”);req.seturl(“https://api.buzzstream.com/v1”);req.setConsumer(消费者);req.settoken(令牌);

设置请求对象将基于您使用的服务提供的API文档。在我的情况下,我正在对窃听API执行Get HTTP请求,因此我将相应地设置方法和URL属性。然后我们需要将消费者和令牌对象设置为请求。

第4步:签署请求

var signaturemethod = new com.brianflove.oauth.methods.hmacsha1signaturemethod();req.signwithsignaturemethod(signaturemethod = signaturemethod);

我正在使用HMAC-SHA1方法签署请求,因为我的实现需要。我提供本文的OAuth包也实现了纯文本签名方法。只需使用该组件代替hmacsha1signaturemethod.我正在使用的组件。

步骤5:发送HTTP请求

var httprequest = new http();httproest.seturl(req.tourl());httprequest.setmethod(req.getmethod());httprequest.setcharset(“UTF-8”);var httpresult = httprequest.send()。getPrefix();Writedump(httpresult);

要测试OAuth代码,我正在对API执行基本的HTTP请求,以确保我收到200个状态代码以响应。我只是使用了Writedump()函数来显示HTTP请求的结果。

下载

我也想提到我正在使用CFUnit 1.0进行单元测试。如果您想运行测试,才浏览到COM / BRIANFLOVE / TESTS / RUN.CFM文件。

阅读更多

学习如何实现OAuth使用Twitter API的三个步进身份验证方法

更新 - 2014年8月20日

  • 下载到源代码已更新以使用Github上发布的库的V0.2。
  • 三步认证支持oauth_callback.URL参数已实现。
  • 完整的Twitter三步身份验证示例已包含在其中例子夹。
  • 当你第一次加载示例/ twitter.cfm.文件您将获得设置的完整说明来设置示例。

更新 - 2014年8月25日

  • 重命名请求实例变量请求正如菲利普所建议的那样。

Brian F爱

嗨,我是布莱恩。我对类型名称,Angular和node.js感兴趣我嫁给了我最好的朋友邦妮,我住在波特兰和我滑雪(很多)。