Hello everyone, I'm having kind of a mental breakdown trying to make passportjs work ( I even thought about building my own auth method and send this to hell), the thing is my local strategy is not being called.This is my serverjs file:const express = require("express"); const bodyParser = require("body-parser"); const mongoose = require("mongoose"); const path = require("path"); const session = require("express-session"); const passport = require("passport"); const app = express(); const port = 3000; const flash = require("connect-flash"); app.use(bodyParser.json()); app.use(bodyParser.urlencoded({ extended: false })); app.use( session({ secret: "secret", resave: true, saveUninitialized: true, }) ); app.use(passport.initialize()); app.use(passport.session()); app.use(flash()); //Routes const login = require("./Routes/login"); const index = require("./Routes/index"); const register = require("./Routes/register"); //Pug view engine app.set("Views", path.join(__dirname, "Views")); app.set("view engine", "pug"); app.use(express.static(path.join(__dirname, "public"))); app.use(function (req, res, next) { res.locals.messages = require("express-messages")(req, res); next(); }); app.use("/login", login); app.use("/", index); app.use("/register", register); mongoose.connect( "mongodb://localhost/test", { useNewUrlParser: true, useUnifiedTopology: true, }, (error, result) => { if (!error) { app.listen(port, function () { console.log("Connection to Mongodb was succesful on port " + port); }); } } ); let db = mongoose.connection; Then in my login.js file://Local strategy passport.use( new LocalStrategy((name, password, done) => { console.log("Local strategy called"); User.findOne({ username: name }, (err, user) => { if (err) throw err; if (!user) { return done(null, false); } bcrypt.compare(password, user.pass, (err, result) => { console.log("I'm getting called too!"); if (result) { return done(null, user); } else { return done(null, false); } }); }); }) ); passport.serializeUser((user, done) => { console.log("Serialize user called."); done(null, user.id); }); passport.deserializeUser((id, done) => { console.log("Deserialize user called."); User.findById(id, (err, user) => { done(err, user); }); }); //POST FOR LOGIN Router.post( "/", passport.authenticate("local", { successRedirect: "/", failureRedirect: "/login", }) ); module.exports = Router; None of the console logs in the above got printed. I have all the passport imports and, although console.log wont print anything succesRedirect and failureRedirect does work, when I submit I get redirected.I really dont know how to proceed, everything seems not to work.Thanks in advance.
Submitted June 20, 2020 at 03:42PM by C_Roma94
No comments:
Post a Comment