【问题标题】:NodeJS, Express server with ssl to use Dropbox API - 400 Bad RequestNodeJS,带有 ssl 的 Express 服务器使用 Dropbox API - 400 Bad Request
【发布时间】: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


    【解决方案1】:

    我认为您的 curl 命令的问题在于它有未转义的 & 符号。尝试在整个 URL 周围加上引号。

    【讨论】:

    猜你喜欢
    • 2020-03-23
    • 2023-03-13
    • 2020-10-01
    • 1970-01-01
    • 2017-05-04
    • 1970-01-01
    • 2023-03-04
    • 2010-12-13
    • 1970-01-01
    相关资源
    最近更新 更多