【发布时间】:2013-11-09 18:06:09
【问题描述】:
我目前在 y-hack,正在破解一个应用程序。我以前从未将应用程序部署到服务器,但我设法创建了一个 AWS EC2 实例,我使用 startssl 创建了 ca 证书,现在我正在尝试使用 DropBox API 检索信息。
我的代码在我的本地机器上运行良好,但是当我尝试在我的服务器上使用代码时,我不断收到 400 错误请求错误。以下是我的选项:
var options = {
key: fs.readFileSync('./cred/ssl.key'),
cert: fs.readFileSync('./cred/ssl.crt'),
ca: [fs.readFileSync('./cred/sub.class1.server.ca.pem')]
}
我的服务器看起来像:
https.createServer(options,app).listen(443, function(){
console.log('Express server listening on port ' + 443);
});
当我尝试进行身份验证时,我使用内置的 Dropbox javascript 客户端并调用:
var server = new Dropbox.AuthDriver.NodeServer(500);
我所有的端口都是开放的,我可以使用 HTTPS 访问我的网站。我已经验证我的 SSL 证书没问题,但是每次我从我的微实例向 DropBox 发出请求时,页面都会挂起。我试过了:
curl https://www.dropbox.com/1/oauth2/authorize?client_id={client_id}&redirect_uri=https%3A%2F%2Fsimplestever.com%3A8912%2Foauth_callback/&response_type=code/&state={state}
我得到这个作为回应(请原谅格式):
错误 (400)
您使用的应用似乎提交了错误的请求。如果您想将此错误报告给应用程序的开发者,请提供以下信息。开发人员的更多详细信息
Missing "response_type".
====================== 我对这一切都很陌生,今天才自学。我以前从未使用过 curl ...如果有人知道为什么我在请求中遇到这些问题,那将非常有帮助!干杯!
编辑:我用转义字符卷曲并且它起作用了! ...这意味着客户端可能会损坏?我将用查询替换它,暂时忘记 csrf 变量,看看它是否有效。
Edit2:我最终使用请求模块编写了身份验证请求,并且成功了!就在紧要关头。干杯!
Edit3:我应该感谢我模仿的代码。 https://github.com/smarx/othw/blob/master/Node.js/app.js
【问题讨论】:
标签: node.js ssl amazon-web-services express dropbox-api