successRedirect与passport-facebook无法正常工作

时间:2017-10-08 04:59:03

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

我正在尝试使用passport-facebook登录我的应用程序。当用户实际登录时,我在重定向时遇到了一些麻烦。基本上问题是,在进入/ auth / facebook并重定向到facebook登录(并输入凭据,然后点击登录按钮)后,页面将永远加载,而不是重定向。我做错了什么?

这是我的app.js:

import express from 'express';
import bodyParser from 'body-parser';
import session from 'express-session';
import passport from 'passport';
import FacebookStrategy from 'passport-facebook'; 
const app = express();



var fbOpts = {
    clientID: ****,
    clientSecret: ****,
    callbackURL: '/auth/facebook/callback',
    profileFields: ['id', 'displayName', 'photos', 'email']
}

var fbCallback = (accessToken, refreshToken, profile, cb) => {
    console.log(accessToken, refreshToken, profile, cb);
    //save to database
}


app.use(bodyParser.json());
app.use(session({
    secret:'foobar',
    resave:true,
    saveUnitialized:true
}))

passport.use(new FacebookStrategy(fbOpts,fbCallback))

app.get("/",(req,res)=>{
    res.send("<a href='/auth/facebook'>Login with Facebook</a>")
});

app.get("/auth/facebook",passport.authenticate('facebook'));


app.get('/auth/facebook/callback',
    passport.authenticate('facebook', {
        successRedirect : '/profile',
        failureRedirect : '/'
    })
);


app.get("/profile",(req,res)=>res.send("profile page"))


app.listen(3000);

有人能告诉我我错过了什么或重定向到我的网站有什么问题吗?

另外,我可以告诉登录正常工作,因为如果我查看终端的控制台,我可以看到我的Facebook用户信息,例如个人资料图片,姓名,身份证等。

1 个答案:

答案 0 :(得分:0)

你现在可能已经解决了这个问题。但只是为了其他任何人试图解决这个问题。您应该注意许多参考点。我试图改变https://developers.facebook.com/apps上的重定向内容多年,但没有任何效果。保持消息URL被阻止。白名单等等。

问题实际上已经解决了,因为在我的ids文件中,我存储了我的ID,我设置了callbackURL:&#39; http:// 127.0.0.1 :3000 / auth / Facebook的/回调&#39;而不是callbackURL: localhost :3000。

愚蠢的错误,但只是想我会分享让你知道继续检查所有可能的参考点。