【问题标题】:successRedirect with passport-facebook not working护照-facebook的成功重定向不起作用
【发布时间】:2018-03-19 13:17:44
【问题描述】:

我正在尝试使用 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 用户信息,例如头像、姓名、ID 等。

【问题讨论】:

  • 你在 Facebook 应用上的回调 URL 是什么?

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


【解决方案1】:

您现在可能已经解决了这个问题。但仅适用于其他试图解决此问题的人。您应该注意许多参考点。我试图更改 https://developers.facebook.com/apps 上的重定向内容已经很久了,但没有任何效果。不断收到消息 URL 被阻止。白名单等。

问题实际上已解决,因为在我存储我的 id 的 ids 文件中,我设置了 callbackURL: 'http://127.0.0.1:3000/auth/facebook/callback' 而不是callbackURL: localhost:3000.

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

【讨论】:

    猜你喜欢
    • 2018-11-19
    • 2016-04-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多