Passport.js Стратегия Facebook не работает, потому что URL-адрес заблокирован

Я получаю эту ошибку, когда захожу на локальный хост: 3000 и использую кнопку входа в систему с помощью кнопки facebook.

URL-адрес заблокирован: это перенаправление не удалось, поскольку URI перенаправления не внесен в белый список в настройках клиента OAuth приложения. Убедитесь, что клиент и веб-вход OAuth включены, и добавьте все домены приложений в качестве действительных URI перенаправления OAuth.

Даже когда я не вошел в систему на Facebook и пытаюсь перейти на Facebook для входа в систему, вместо этого я получаю пустую страницу с этой ошибкой.

Вы не вошли в систему: Вы не вошли в систему. Пожалуйста, войдите и повторите попытку.

Вот мой модуль аутентификации index.js:

'use strict';
const passport = require('passport');
const config = require('../config');
const h = require('../helpers');
const FacebookStrategy = require('passport-facebook').Strategy;

module.exports = () => {
    passport.serializeUser((user, done) => {
        done(null, user.id);
    });

    passport.deserializeUser((id, done) => {
        //Find the user using the _id
        h.findById(id)
            .then(user => done(null, user))
            .catch(error => console.log('Error when deserializing user'));
    });

    let authProcessor = (accessToken, refreshToken, profile, done) => {
        // Find a user in the local db using profile.id
        // If the user is found, return the user data using the done() method
        // If the user is not found, create one in the local db and return
        h.findOne(profile.id)
            .then(result => {
                if(result) {
                    done(null, result);
                } else {
                    // Create a new user and return
                    h.createNewUser(profile)
                        .then(newChatUser => done(null, newChatUser))
                        .catch(error => console.log("Error when creating a new user"))
                }
            })
    }
    passport.use(new FacebookStrategy(config.fb, authProcessor));

Вот мой файл config/development.json. Я удалил значения dbURI и fb clientID и секрет, но в моей разработке эти значения существуют и были получены от соответствующих поставщиков.

{
    "host": "http://localhost:3000",
    "dbURI": "",
    "sessionSecret": "catscanfly",
    "fb": {
        "clientID": "",
        "clientSecret": "",
        "calbackURL": "//localhost:3000/auth/facbeook/callback",
        "profileFields": ["id", "displayName", "photos"]
    }
}

Все приложение на github


person roadtocode    schedule 28.03.2016    source источник
comment
На самом деле я столкнулся с той же проблемой ... Однако я думаю, что наши проблемы в конфигурации приложения Facebook ... Я работал в течение двух минут, а затем изменил настройку и снова все испортил ... Если я найду что-нибудь важное об этом я вернусь сюда. Но из того, что я прочитал, это определенно как-то связано с URL-адресом сайта, который нам нужно ввести в конфигурации приложения FB.   -  person daneczech    schedule 29.03.2016


Ответы (1)


эта строка здесь: "calbackURL": "//localhost:3000/auth/facbeook/callback"

Проверьте, для какого сайта настроено ваше приложение fb. Я изменил файл hosts, чтобы использовать local.mysite.com:3000, и FB принял это.

Редактировать: Вы решили проблему?

person jonnycraze    schedule 12.05.2016