如何根据nodejs中的用户重定向视图

时间:2018-06-07 17:53:32

标签: node.js express

我有一个登录,我希望根据用户特定的重定向到视图。

我怎样才能实现这一目标?

这里有我的路线

    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放在同一个视图上。

我尝试创建一个函数,以验证用户的电子邮件,但它不起作用。

0 个答案:

没有答案