gpt4 book ai didi

javascript - Node.js,向google api发出https post请求

转载 作者:太空宇宙 更新时间:2023-11-04 00:36:22 25 4
gpt4 key购买 nike

我正在尝试将 google 帐户登录集成到我正在构建的 node.js 应用程序中,但在向 google api gateway 发送 https post 请求时遇到了一些问题。

起初我关注的是这个tutorial它工作正常,但他们在其中指出,对于谷歌帐户 ID 的后端处理,应该这样做 tutorial 。那时我开始遇到问题。我不想使用任何额外的库,只想使用原生的 Node.js 功能来了解它是如何完成的。

为了在后端验证帐户,需要将 token ID 安全地发布到给定的 URL。

这是正在运行的客户端代码:

var xhr = new XMLHttpRequest();
xhr.open('POST', 'https://www.googleapis.com/oauth2/v3/tokeninfo');
xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
xhr.onload = function() {
console.log(xhr.responseText);
};
xhr.send('id_token=' + token_id);

现在,当我尝试在服务器端使用 NodeJS 来执行此操作时,它不起作用。我尝试使用在nodejs文档上找到的代码:

var http = require('http');
var post_data = 'id_token=' + token_id;

var post_options = {
host: 'googleapis.com',
port: '80',
path: '/oauth2/v3/tokeninfo',
method: 'POST',
headers: {
'Content-Type': 'application/x-www-form-urlencoded',
}
};

var post_req = http.request(post_options, function(res) {
res.setEncoding('utf8');
res.on('data', function (chunk) {
console.log(chunk);
});
});

post_req.write(post_data);
post_req.end();

来自 google 的响应是 404 错误 在此服务器上找不到请求的 URL/oauth2/v3/tokeninfo。这就是我们所知道的。 这意味着我做错了什么。所以我的问题是:

  1. 如何改进/修复我的代码,以便它执行正确的 post https 请求?
  2. 我怎么知道这将是一个 https 请求(而不是 http)?

感谢您的帮助;)

最佳答案

除了协议(protocol)差异(http 与 https)之外,您还缺少主机名中的 www 子域(就像客户端示例中使用的子域一样)。将其从 host: 'googleapis.com' 更改为 host: 'www.googleapis.com' 应该可以。

关于javascript - Node.js,向google api发出https post请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38807548/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com