Итак, когда я впервые запустил приложение вчера, экран аутентификации появился как обычно. С тех пор, даже после удаления себя из моей базы данных mongodb, окно аутентификации не появляется.

Я искал решение, но никто не работал. Я также очистил свои куки, тоже не работал.

Я был бы очень признателен за любые ваши идеи!

< Сильный > 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("/")
    }
);

< Сильный > Профиль - routes.js

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

< Сильный > паспорт - 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);
1
Jacob Broughton

1 ответ

Ну, по общему признанию я чувствую себя немного глупым. Я понял.

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

Оглядываясь назад, это должен был быть здравый смысл, лол. Я надеюсь, что это поможет кому-то в будущем, если ситуация улучшится.

58583776