Answer the question
In order to leave comments, you need to log in
How to combine mysql and passport.js for registration and authorization?
Good night. I have an authentication on passport.js and a registration module on mysql/socket.io.
Please tell me how can I search for a user in the database and compare, and how can I enter him into the database?
Thank you very much.
const passport = require('passport');
const LocalStrategy = require('passport-local').Strategy;
const mysql = require('mysql');
// var connection = mysql.createConnection({
// /* host: "localhost",
// user: "root",
// password: "",
// database: "tabels"*/
// });
// connection.query("SELECT * FROM users WHERE email LIKE '" + data[0] + "' AND password LIKE '" + data[1] + "'", function(err,res) {
// if(err) console.log(err);
// else {
// var count = res.map((item) => item.email.split("\r")[0]).length;
// for(i=0; i<count; i++) {
// var id = res.map((item) => item.id.split("\r")[0])[i];
// var email = res.map((item) => item.email.split("\r")[0])[i];
// var password = res.map((item) => item.password.split("\r")[0])[i];
// console.log(data);
// }
// }
// });
const userDB = {
id: 1,
email: "[email protected]",
password: "123"
}
passport.serializeUser(function(user, done) {
console.log("Serialize: ", user);
done(null, user.id);
});
passport.deserializeUser(function(id, done) {
/*User.findById(id, function(err, user) {
done(err, user);
});*/
console.log("Deserialize: ", id);
user = (userDB.id === id) ? userDB : false;
done(null, user);
});
passport.use(new LocalStrategy(
{usernameField: 'email'},
function(email, password, done) {
if(email === userDB.email && password === userDB.password) {
return done(null,userDB)
}
else {
return done(null,false)
}
})
);
Answer the question
In order to leave comments, you need to log in
Didn't find what you were looking for?
Ask your questionAsk a Question
731 491 924 answers to any question