У меня проблемы с NodeJS с местным паспортом. Я установил паспорт в файл экспорта, чтобы вызвать его. Я вызвал сериализацию и десериализацию, но все равно говорится, что он не может поместить пользователя в сеанс
App.js
const express = require( `express` ),
app = express( ),
passport = require( `passport` ),
passportConfiguration = require( `./config/passport` ),
teacherRouter = require( `./routes/teacher` );
passportConfiguration( passport );
app.use( passport.initialize( ) );
app.use( passport.session( ) );
passport.js
const LocalStrategy = require( `passport-local` ).Strategy,
configDatabase = require( `../config/database` ),
mysql = require( `mysql2` ),
con = mysql.createConnection( configDatabase );
module.exports = ( passport ) => {
passport.use( new LocalStrategy( ( username, password, done ) => {
try {
con.query( `SELECT * FROM tbl_teachers WHERE username = ?`, [ username ], ( error, results ) => {
if ( error ) throw error;
if ( results ) {
if( password == results[ 0 ].password ) {
return done( null, results[ 0 ] );
} else {
return done( null, false, {message: 'Wrong password'} );
}
} else {
return done( null, false, { "message": `'${ username }' not found` } );
}
} );
} catch ( error ) { console.log( error ) }
} ) );
passport.serializeUser( ( user, done ) => done( null, user.ID ) );
passport.deserializeUser( ( ID, done ) => con.query( `SELECT * FROM tbl_teachers WHERE id = ?`, [ ID ], ( error, results ) => { done( error, results[ 0 ] ) ) );
};