gpt4 book ai didi

javascript - Passport-Facebook 身份验证窗口未弹出,用户仍添加

转载 作者:太空宇宙 更新时间:2023-11-04 01:23:01 26 4
gpt4 key购买 nike

所以,当我昨天第一次运行该应用程序时,身份验证屏幕正常显示。从那时起,即使从我的 mongodb 数据库中删除自己后,也不会弹出身份验证窗口。

我一直在寻找解决方案,但没有成功。我也清除了我的cookie,但也不起作用。

我非常感谢你们的任何想法!

auth-routes.js

router.get("/facebook", passport.authenticate("facebook", ({ display: 'popup' })));

router.get("/facebook/callback",
passport.authenticate("facebook", {
failureRedirect: "/auth/login"
}), (req, res) => {
res.redirect("/")
}
);

profile-routes.js

const authCheck = (req, res, next) => {
if(!req.user) {
res.redirect("/auth/login")
} else {
next();
}
}

passport-setup.js

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

passport.deserializeUser((id, done) => {
User.findById(id).then((user) => {
done(null, user.id)
})
});

passport.use("facebook", new FacebookStrategy({
clientID: process.env.clientID,
clientSecret: process.env.clientSecret,
callbackURL: "http://localhost:3000/auth/facebook/callback"
}, (accessToken, refreshToken, profile, done) => {
User.findOne({ userID: profile.id }, (err, user) => {
if(user) {
console.log("Already a user");
done(null, user)
} else {
new User ({
userID : profile.id,
userName : profile.displayName
}).save().then((newUser) => {
console.log(" ")
console.log("New user created! ===> ")
console.log(newUser);
done(null, user);
})

}
})
}))

server.js

    app.use(passport.initialize());
app.use(passport.session());
app.use("/auth/", authRoutes);
app.use("/profile/", profileRoutes);

最佳答案

好吧,不可否认,我觉得有点傻。我想通了。

Facebook 仅对您进行一次身份验证,为了多次显示身份验证屏幕,您需要删除 Facebook 设置上的权限。

事后看来,这应该是常识,哈哈。我希望这对将来出现这种情况的人有所帮助。

关于javascript - Passport-Facebook 身份验证窗口未弹出,用户仍添加,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58583776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com