Невозможно открыть окно браузера с узла (размещенного на heroku)
У меня есть приложение NodeJs, размещенное на Heroku. В рамках аутентификации я хочу открывать окно браузера, когда пользователь обращается к маршруту /login.
Я использую для этого "открытую" библиотеку Node и передаю URL-адрес в качестве параметра. Хотя это работает на локальном компьютере, и Node открывает окно браузера (с этим URL-адресом), но это не так, когда он размещен на Heroku.
Итак, я хотел бы понять, есть ли у платформы Heroku какие-либо ограничения на выполнение таких действий, и какие еще шаги мне следует предпринять для решения этой проблемы.
Я пробовал открытые и открывающие библиотеки.
Пример кода с библиотекой открывателей.
var opener = require("opener");
url = 'https://exampleapp.herokuapp.com';
opener(url);
return;
1 ответ
Чтобы перенаправить пользователя на страницу после определенного, даже на той же странице, вы можете сделать простое (при условии, что вы используете экспресс с Nodejs):
res.redirect()
или res.download()
если вы хотите, чтобы вместо этого пользователь мог загрузить элемент.
В противном случае, если вы хотите, чтобы новое окно открывалось с новой страницей (не переопределяя предыдущую страницу, на которой они были), вам понадобится дополнительный модуль для этого, так как express не обрабатывает сторонний код браузера: я рекомендую Puppeteer с этим примером кода:
const puppeteer = require('puppeteer');
(async () => {
const browser = await puppeteer.launch({headless: false});
const page = await browser.newPage();
await page.goto(url);
await browser.close();
})();
В {headless: false}
параметр в функции puppeteer.launch()
функция откроет новую вкладку в браузере пользователя.