برسام
6 سال پیش توسط برسام مطرح شد
2 پاسخ

مشکل در لاگین کردن به داشبورد

سلام وقت بخیر @hesammousavi
من موقع لاگین کردم میخوام وارد داشبورد بشم ولی اجازه نمیده و کرش میکنه، کل کدهامو بررسی کردم همه درست بودن حتی قبل از لاگین کردن اگه فیلدی خالی باشه ارور هاشو بهم نشون میده، فقط یه نکته ای که فکر میکنم مشکل از اینجا باشه اینه که توی این کدهایی پایین که نوشتم زیر قسمت :

('local-login', { failureRedirect: '/dashboard/login' })

خط کشیده و این پیغام رو میده که نباید از 4 تا آرگومان استفاده کنی و باید نهایت 3 تا باشه که نمیدونم چجوری حلش کنم. اینم کدهای کامل فایل dashboard.js :

var express = require('express');
var router = express.Router();
var User = require('./model/user');
var passport = require('passport');
var LocalStrategy = require('passport-local').Strategy;

function isLoggedIn(req, res, next) {
    if (req.isAuthenticated()) {
        next();
        return;
    }
    res.redirect('/dashboard/login');
}

router.get('/' , isLoggedIn, function (req , res) {
    res.json(req.user);
});

router.get('/login' , function (req , res) {
    res.render('login.pug' , {
        title : "Login Page"
    });
});

passport.serializeUser(function(user, done) {
    done(null, user.id);
});

passport.deserializeUser(function(id, done) {
    User.findById(id, function (err, user) {
        done(err, user);
    });
});

passport.use('local-login', new LocalStrategy({
    usernameField: 'email',
    passwordField: 'password'
    },
    function (email , password, done) {
        User.findOne({ email: email }, function (err, user) {
            if (err) {
                return done(err);
            }

            if (!user) {
               return done(null, false, {});
            }

            if (!User.validPassword(password, use.password)) {
                return done(null, false, {});
            }

            return done(null, user);

        });
    }
));

router.post('/login' , function (req, res , next) {
    var email = req.body.email;
    var password = req.body.password;

    req.checkBody('email' , 'The email Field is required').notEmpty();
    req.checkBody('password' , 'The password Field is required').notEmpty();

    var errors = req.validationErrors();
    if (errors) {
        res.render('login.pug' , {
            title : 'Login Page',
            errors : errors
        });
        return;
    }

    next();
},
passport.authenticate('local-login', { failureRedirect: '/dashboard/login' }) , function (req , res) {
    console.log('login success');
    res.redirect('/dashboard');
});

router.get('/register' , function (req , res) {
    res.render('register.pug' , {
       title : "register page"
    });
});

router.post('/register' , function (req , res) {
    let name = req.body.name;
    let email = req.body.email;
    let password = req.body.password;
    let password_confirm = req.body.password_confirm;

    req.checkBody('name' , 'The Name Field is required').notEmpty();
    req.checkBody('email' , 'The email Field is required').notEmpty();
    req.checkBody('email' , 'The email must be a valid email address').isEmail();
    req.checkBody('password' , 'The password Field is required').notEmpty();
    req.checkBody('password_confirm' , 'The password confirm Field is required').notEmpty();
    req.checkBody('password_confirm' , 'password do not match').equals(password);

    let errors = req.validationErrors();
    if (errors) {
        res.render('register.pug' , {
           title : 'Register Page',
           errors : errors,
           name : name,
           email : email
        });
        return;
    }
    let newUser = new User({
        name: name,
        email: email,
        password: User.generateHash(password)
    });

    newUser.save(function (err) {
        if (err) throw err;

        res.redirect('/dashboard/login');
    });
});

module.exports = router;

و در نهایت اروری که توی ترمینال بهم نشون میده اینه:

server running at localhost:3000  
(node:11780) DeprecationWarning: collection.ensureIndex is deprecated. Use createIndexes instead.  
events.js:167  
throw er; // Unhandled 'error' event  
^

ReferenceError: use is not defined  
at C:UsersAdminDesktop odejsdashboard.js:49:47  
at C:UsersAdminDesktop odejs ode_modulesmongooselibmodel.js:4475:16  
at process.nextTick (C:UsersAdminDesktop odejs ode_modulesmongooselibquery.js:2526:28)  
at process._tickCallback (internal/process/next_tick.js:61:11)  
Emitted 'error' event at:  
at C:UsersAdminDesktop odejs ode_modulesmongooselibmodel.js:4477:13  
at process.nextTick (C:UsersAdminDesktop odejs ode_modulesmongooselibquery.js:2526:28)  
at process._tickCallback (internal/process/next_tick.js:61:11)  
[nodemon] app crashed - waiting for file changes before starting...  

ثبت پرسش جدید
EW
@erwin 6 سال پیش مطرح شد
1

اشتباهیی نوشتید

use.password

باید بنویسید

user.password

برسام
@nodejs 6 سال پیش مطرح شد
0

ممنونم، درست شد.


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام