mongodb - node.js bagaimana untuk membuat fail penghalaan yang tinggal tidak dilaksanakan?
为情所困
为情所困 2017-05-24 11:31:27
0
2
679

Sebagai contoh, jika saya ingin menukar kata laluan, saya mempunyai kata laluan lama dan kata laluan baharu Pengesahan kata laluan lama diasingkan daripada penukaran kata laluan baharu. Bagaimanakah saya boleh menghalang kata laluan baharu daripada ditukar?

router.get('/:userid', function(req, res,next) {
    if(req.session.userid){
        return next();
    }
    res.redirect('/login');
});
router.get('/:userid', function(req,res,next){
    User.find(req.session.userid,function(err,doc){
        res.render('changepassword',{
            userid: req.session.userid,
            user:doc
        });
    });
});

router.post("/:userid",function(req,res) {
    User.findOne({
        name: req.session.userid,
        pwd: req.body.oldpwd
    }, function (err, doc) {
        if (err) {
            r.error = err;
            return;
        }
        if (doc) {
            console.log('success');
        } else {
            console.log('fail');
            return;
        }
        res.json(r);
    });
});

//不想使得当旧密码验证不成功的时候让以下代码执行
router.post("/:userid",function(req,res) {
    var u = {
        pwd :req.body.pwd
    };
    var userid = req.session.userid;
    if(userid && '' != userid) {
        User.findOneAndUpdate(userid,u,function(err, docs) {
            console.log('modify-----'+ docs);
            res.redirect('/');
        });
    }
});
为情所困
为情所困

membalas semua(2)
滿天的星座

Tambah di sebelah parameter fungsi panggil balik Jika pengesahan berjaya, seterusnya akan dikembalikan Jika pengesahan gagal, kegagalan akan dikembalikan

router.post("/:userid",function(req,res,next) {
    User.findOne({
        name: req.session.userid,
        pwd: req.body.oldpwd
    }, function (err, doc) {
        if (err) {
            r.error = err;
            return;
        }
        if (doc) {
            console.log('success');
            return next();
        } 
        console.log('fail');
        res.json(r);
    });
});

//不想使得当旧密码验证不成功的时候让以下代码执行
router.post("/:userid",function(req,res,next) {
    var u = {
        pwd :req.body.pwd
    };
    var userid = req.session.userid;
    if(userid && '' != userid) {
        User.findOneAndUpdate(userid,u,function(err, docs) {
            console.log('modify-----'+ docs);
            res.redirect('/');
        });
    }
});

Tetapi mereka sebenarnya boleh bersama, jadi mengapa memisahkan mereka? Contohnya:

router.get('/:userid', function(req, res,next) {
    if(req.session.userid){
        return User.find(req.session.userid,function(err,doc){
            res.render('changepassword',{
                userid: req.session.userid,
                user:doc
            });
        });
    }
    res.redirect('/login');
});
为情所困

Untuk rujukan:

1. router.post("/:userid", function(req,res) {
and
//Kami tidak mahu kod berikut dilaksanakan apabila pengesahan kata laluan lama gagal
router.post("/: userid", function(req,res) {

Ia adalah penghala pendua Anda perlu meletakkan kod pemprosesan berikut (tukar kata laluan) padanya.

2 Selain itu, anda boleh mempertimbangkan password.js untuk pengurusan log masuk.

Untuk rujukan.

Suka MongoDB! Selamat mencuba!

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan