Passport.js Facebook策略无效,因为URL已被阻止

时间:2016-03-28 19:30:50

标签: node.js oauth-2.0 passport.js facebook-authentication

当我转到localhost:3000并使用facebook按钮登录时,我收到此错误。

  

网址已阻止:此重定向失败,因为重定向URI不是   已在应用的客户端OAuth设置中列入白名单。确保客户端和   已启用Web OAuth登录,并将所有应用程序域添加为有效OAuth   重定向URI。

即使我没有在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"]
    }
}

Whole app on github

1 个答案:

答案 0 :(得分:0)

这一行: “calbackURL”:“// localhost:3000 / auth / facbeook / callback”

检查您的fb应用配置的网站。 我修改了我的hosts文件以使用local.mysite.com:3000而FB接受了。

编辑: 你解决了这个问题吗?