[英]node js, make https post request to google api
我正在嘗試將Google帳戶登錄信息集成到我正在構建的node.js應用程序中,但在向Google api Gate發送https發布請求時遇到了一些問題。
起初,我遵循本教程 ,並且工作正常,但是他們在其中指出,對於Google帳戶ID的后端處理,應該執行本教程 。 那時我開始遇到問題。 我不想使用任何額外的庫,僅想使用本機的node.js功能來了解其工作原理。
為了在后端驗證帳戶,需要將令牌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();
谷歌的響應是404錯誤The requested URL /oauth2/v3/tokeninfo was not found on this server. That's all we know.
The requested URL /oauth2/v3/tokeninfo was not found on this server. That's all we know.
這意味着我做錯了。 所以我的問題是:
感謝您的任何幫助 ;)
除了協議(http和https)不同之外,您還缺少主機名中的www
子域(例如客戶端示例中使用的域名)。 可以將其從host: 'googleapis.com'
更改為host: 'www.googleapis.com'
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.