簡體   English   中英

節點js,向Google api發送https發布請求

[英]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. 這意味着我做錯了。 所以我的問題是:

  1. 我怎樣才能改善/修復我的代碼,使其執行正確的后https請求?
  2. 我怎么知道這將是一個https請求(不是http)?

感謝您的任何幫助 ;)

除了協議(http和https)不同之外,您還缺少主機名中的www子域(例如客戶端示例中使用的域名)。 可以將其從host: 'googleapis.com'更改為host: 'www.googleapis.com'

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM