Как интегрировать фейсбук-паспорт в приложение реакции с Express API?
Я создал сервер экспресс-API, который работает на локальном хосте: 5000 с приложением реагирования на локальном хосте: 3000. Сейчас я пытаюсь интегрировать аутентификацию Facebook.
Я следовал руководству Scotch по аутентификации с использованием паспорта, чтобы интегрировать аутентификацию facebook в моем собственном приложении. Я клонировал его репо, настроил логин на Facebook для разработчиков на фейсбуке и он работает правильно. Используя его пример, я попытался настроить этот поток в своем приложении, но безуспешно. В консоли Firefox я заметил одно отличие - когда я нажимаю "Войти через Facebook" в приложении Scotch, появляется 3 запроса:
- HTTP: // локальный: 8080 / авториз / facebook
- https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http://localhost:8080/auth/facebook/callback&scope=public_profile,email&client_id=CLIENT_ID
- http://localhost:8080/auth/facebook/callback?code=A_LOT_OF_CHARS
В моем приложении:
- HTTP: // локальный: 5000 / авт / facebook
- https://www.facebook.com/dialog/oauth?response_type=code&redirect_uri=http://localhost:5000/api/oauth/facebook/callback&scope=public_profile,email&client_id=CLIENT_ID
- https://www.facebook.com/v2.12/dialog/oauth?redirect_uri=http%3A%2F%2Flocalhost%3A5000%2Fapi%2Foauth%2Ffacebook%2Fcallback
Таким образом, есть разница в третьем запросе - Скотч перенаправляет на свой обратный вызов, но в моем приложении я получил ссылку на сообщение
Параметр app_id является обязательным
на странице в фейсбуке.
Как мне настроить реакцию, чтобы она работала?
1 ответ
У вас еще есть маршрут перенаправления в вашем экспресс-приложении? Что-то вроде этого.
app.get('/auth/facebook/callback',
passport.authenticate('facebook', { failureRedirect: '/login' }),
function(req, res) {
// Successful authentication, redirect home.
res.redirect('/');
});
Вы можете прочитать документацию здесь https://github.com/jaredhanson/passport-facebook если вы все еще застряли. Надеюсь, поможет