passport, mongodb, mongoose, express 및 passport-local-mongoose 플러그인을 사용하여 작은 webapp에 대한 인증을 구축하려고합니다. 사용자 로그인을 시도 할 때 bad request
이 반환되었습니다. 나는 사용자를 등록하고 DB에 데이터를 가져올 수있다.passport-local-mongoose를 사용하여 잘못된 요청이 있습니다.
오류 처리 기능을 사용하여 디버깅하려면 어떻게해야합니까? 여권과 여권 - 현지 몽구스에 대한 문서는 가벼운 것처럼 보입니다 (그리고 저는 멍청한 사람입니다).
App.js
app.use(passport.initialize())
app.use(passport.session())
app.use(express.static(path.join(__dirname, 'public')));
app.use('/', routes);
var User = require('./models/user.js')
passport.use(new LocalStrategy(User.authenticate()));
//passport.use(new LocalStrategy(UserSchema.authenticate()))
// use static serialize and deserialize of model for passport session support
passport.serializeUser(User.serializeUser());
passport.deserializeUser(User.deserializeUser());
// Connect to Mongoose
mongoose.connect('mongodb://localhost/users')
등록 경로 (DB를 데이터를 얻을 수 있지만, 리디렉션 실패)
// Register a user to the DB
router.post('/register', function(req, res, next){
let firstName = req.body.firstName
let lastName = req.body.lastName
let username = req.body.email
//let password = req.body.password
let homeAirport = req.body.homeAirport
User.register(new User ({
firstName: firstName,
lastName: lastName,
username: username,
homeAirport: homeAirport
}),
req.body.password, function(err, user) {
if (err) {
console.log(err)
return res.render('register', {
user: user
})
}
// both of these works
passport.authenticate('local', { failureRedirect: '/' }),
function(req, res, next) {
res.redirect('/');
}
})
})
로그인 경로가
router.post('/login', passport.authenticate('local'), function(req, res) {
res.redirect('/');
});
(잘못된 요청을 반환) 사용자 스키마
var mongoose = require('mongoose'),
Schema = mongoose.Schema,
passportLocalMongoose = require('passport-local-mongoose');
// Define the scheme
var User = new Schema ({
firstName: {
type: String,
index: true
},
lastName: {
type: String,
index: true
},
email: {
type: String,
index: true
},
homeAirport: {
type: String,
index: true
}
})
User.plugin(passportLocalMongoose)
module.exports = mongoose.model('User', User)