1

У меня есть приложение nodeJS (экспресс), у которого есть логин facebook. Я использую аутентификацию с помощью паспорт-facebook, описанную здесь passport-facebook. Мой логин все еще работал пару недель назад, но теперь что-то изменилось. Я не уверен, что Facebook что-то изменил, или если у меня есть. Я не коснулся какого-либо кода входа, поэтому я подозреваю, что это что-то в конце facebook.Паспорт аутентификации Facebook не работает

Вот мой код аутентификации:

router.get('/', passport.authenticate('facebook'), function(req, res){ 
}); 

router.get('/auth/facebook/callback', passport.authenticate('facebook', { 
    failureRedirect: '/' }), 
    function(req, res) { 
    res.redirect('/calendar'); 
}); 

В принципе, я хочу, чтобы приложение для автоматической проверки подлинности пользователя от корня приложения, а затем перенаправить после аутентификации в/календарь.

Симптомы следующие: Если я попытаюсь перейти к корню, и я еще не вошел в систему с facebook раньше, это приведет меня к обычному экрану входа в facebook, как и должно быть. Но на этом экране, есть предупреждение:

Данный URL не допускается в конфигурации приложения Один или несколько из указанных адресов не разрешено настройками приложения. Он должен соответствовать URL-адресу веб-сайта или Canvas, или домен должен быть поддоменом одного из доменов приложения.

Я проверил все вопросы, связанные с этим, и, похоже, это потому, что я неправильно настроил домен приложения и URL-адрес сайта в конфигурации приложения facebook. Но они должны быть в порядке: app domain: localhost, url сайта: http://localhost:3000/

Так что я не знаю, почему он жалуется на это? У меня нет субдоменов. Единственные пути, которые у меня есть, это: (/,/calendar,/calendar/events). Маршруты last/calendar/events - это маршруты ajax. В любом случае, после ввода моих учетных данных и входа в facebook, страница перенаправит меня на пустую страницу с URL: (https://www.facebook.com/login.php?login_attempt=1). Я открыл инструменты разработчика, и я вижу одно сообщение об ошибке в консоли:

Не удалось загрузить ресурс: сервер ответил со статусом 500 (Внутренняя ошибка сервера)

Но, теперь я я действительно вошел в систему. Потому что, если я сейчас перейду к root или в/calendar, мне потребуется исправление страницы и показать, что я зарегистрирован правильно. По-видимому, журнал работает, но есть некоторые проблемы с перенаправлением и разрешенными URL-адресами. Я просто не знаю, что и почему. Я использую mongodDB как базу данных.

ответ

0

Это может быть из-за того, какой сайт вы зарегистрировали в своем приложении. Если вы зарегистрировали его до http://localhost:3000/, вам следует работать с доменным локальным хостом, что для обратного вызова. И если вы зарегистрировали его как http://127.0.0.1:3000/, тогда вам следует работать с 127 ...

0

Я понятия не имею, почему это даже сработало, но я нашел решение. Раньше я настроил действительный URI перенаправления OAuth как http://127.0.0.1:3000/auth/facebook/callback, и он работал хорошо. Теперь я изменил его, чтобы использовать localhost вместо 127.0.0.1:3000, и это, казалось, делало трюк. Теперь все работает так, как ожидалось, хотя я не знаю, почему. Если кто-то может ясно сказать мне, почему, я буду отмечать это как правильный ответ.

Смежные вопросы