我有一个登录,我希望根据用户特定的重定向到视图。
我怎样才能实现这一目标?
这里有我的路线
module.exports = (app, passport) => {
// index routes
app.get('/', (req, res) => {
res.render('index');
});
//login view
app.get('/login', (req, res) => {
res.render('login.ejs', {
message: req.flash('loginMessage')
});
});
app.post('/login', passport.authenticate('local-login', {
successRedirect: '/tienda',
failureRedirect: '/login',
failureFlash: true
}));
app.get('/tienda', isLoggedIn, (req, res) => {
res.render('tienda', {
user: req.user
});
});
};
function isLoggedIn (req, res, next) {
if (req.isAuthenticated()) {
return next();
`enter code here`}
res.redirect('/');
}
我的模特
const mongoose = require('mongoose');
const bycrpt = require('bcrypt-nodejs');
const userSchema = new mongoose.Schema({
local:{
email: String,
password: String
}
});
userSchema.methods.generateHash = function (password){
return bycrpt.hashSync(password, bycrpt.genSaltSync(4), null)
};
userSchema.methods.validPassword = function (password){
return bycrpt.compareSync(password, this.local.password);
}
module.exports = mongoose.model('User', userSchema);
现在,当您登录时,它会将您重定向到“tienda”。顺便说一句,在那个视图中,我可以根据电子邮件地址显示内容,但实际上最好有两个不同的视图,而不是将两个html放在同一个视图上。
我尝试创建一个函数,以验证用户的电子邮件,但它不起作用。