Ich versuche, google account Login in die node.js Anwendung zu integrieren, die ich baue, und ich habe ein kleines Problem senden eine https Post Anfrage an Google API Gate.node js, make https post Anfrage an google api
Zuerst folgte ich dieser tutorial und es funktionierte in Ordnung, aber sie sagten darin, dass für die Backend-Verarbeitung von Google-Konto-ID, sollte dies tutorial tun. Ich hatte zu diesem Zeitpunkt Probleme. Ich wollte keine zusätzlichen Bibliotheken verwenden, nur native node.js-Funktionalität, um mich daran zu gewöhnen, wie es gemacht wurde.
Um das Konto im Backend zu validieren, muss eine Token-ID sicher an eine gegebene URL gesendet werden.
Dies ist der Client-Seite Code, der funktioniert:
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);
Jetzt, als ich es mit NodeJS auf Server-Seite zu tun versucht, es hat nicht funktioniert. Ich habe versucht, mit dem Code i auf NodeJS docs gefunden:
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();
Die Antwort von Google 404 Fehler war The requested URL /oauth2/v3/tokeninfo was not found on this server. That's all we know.
was bedeutet, dass ich etwas falsch gemacht haben. Also meine Fragen sind:
- Wie kann ich meinen Code verbessern/beheben, so dass es ordnungsgemäße post https Anfrage ausführt?
- Woher weiß ich, dass es eine https-Anfrage (nicht http) sein wird?
Danke für jede Hilfe;)
Zum einen verwenden Sie http anstelle von https auf der Knotenseite. Hast du versucht, das zu ändern? – mscdex
Nun, ich habe nicht gefunden, wie man das ändert, oder wie man das überprüft. aber ich denke, es ist nicht das einzige Problem hier, ich denke, dass auch etwas mit der allgemeinen Anfrage Struktur falsch ist, wie der Fehler sagt Seite doest existiert. Ich weiß nicht, ob ich es richtig mache, deshalb habe ich das Beispiel der Client-Version mit einbezogen, um eine Idee zu bekommen, wie es aussehen sollte. – Mevia
Um alles zu ändern, müssen Sie grundsätzlich 'http' durch' https' ersetzen und entweder 'port' weglassen oder auf' 443' ändern. – mscdex