Passport.js
Passport adalah authentication middleware yang populer
npm install passport passport-local passport-jwt
const passport = require("passport");
const LocalStrategy = require("passport-local").Strategy;
passport.use(
new LocalStrategy(
{ usernameField: "email" },
async (email, password, done) => {
try {
const user = await User.findByEmail(email);
if (!user) {
return done(null, false, { message: "Invalid credentials" });
}
const isValid = await bcrypt.compare(password, user.password);
if (!isValid) {
return done(null, false, { message: "Invalid credentials" });
}
return done(null, user);
} catch (error) {
return done(error);
}
},
),
);