У меня есть приложение Node / Express, работающее на сервере с включенным https, но при попытке войти через Facebook с использованием стратегии Passport Facebook я получаю эту ошибку:
Небезопасный вход в систему заблокирован: вы не можете получить токен доступа или войти в
это приложение с небезопасной страницы. Попробуйте перезагрузить страницу как https://
Я понимаю, что Facebook требует аутентификации, но на моем сервере она уже есть.
Сертификат получен от LetsEncrypt, и поскольку я использую управляемый сервер, у меня нет доступа к файлам сертификата. Мое приложение Express инициализируется нормально.
const app = express();
const cors = require("cors");
app.use(cors({ origin: true, credentials: true }));
Исходный запрос поступил от моего интерфейса, работающего на другом сервере, также с SSL от LetsEncrypt.
Таким образом, мой интерфейс вызывает конечную точку Express, которая обрабатывает ее в Passport:
app.get(
"/api/auth/facebook",
storeRedirectToInSession,
passport.authenticate("facebook", { scope: ["public_profile", "email"] })
);
И тогда возникает ошибка.
Мое исследование показало, что включение «доверенного прокси» в Express должно исправить это, но это не так. Если я проверяю req.secure, то всегда ложно.
Мне действительно нужен доступ к файлам сертификатов?
Любая помощь приветствуется.
Спасибо