Я пытаюсь запустить локальный сервер в Electron для захвата обратного вызова OAuth от Google следующим образом:
this.server = http.createServer((request, response) => {
const { query } = url.parse(request.url, true);
if (query.code) {
this.onCodeReceived(query.code);
// do something nicer here eventually
response.end();
} else {
response.end('Error');
this.authStatus = 'error';
}
}).listen(this.LOCAL_SERVER_PORT);
Проблема, с которой я сталкиваюсь, заключается в том, что, когда я заканчиваю аутентификацию с помощью Google, окно просто находится в «Ожидании 127.0.0.1 ...» и фактически никогда не заканчивается. Я обнаружил использование console.log в обработчике запросов, что этот обработчик фактически никогда не вызывается, поэтому я озадачен тем, почему запрос не выполняется.
Я подтвердил, что URL-адрес обратного вызова имеет тот же порт, который прослушивает сервер, и что сервер фактически начинает прослушивать. Странно, если я открываю новую вкладку и перехожу на URI, я получаю ожидаемый ответ об ошибке.
Для справки URI обратного вызова установлен как http://127.0.0.1:18363
и this.LOCAL_SERVER_PORT = 18363
.
Если у кого-то есть идеи, я буду очень признателен. Спасибо!