Удалить пароль из пользовательской сессии после входа в систему - PullRequest
0 голосов
/ 30 декабря 2018

Когда пользователь входит в систему, я создаю объект пользователя и сохраняю его в переменной сеанса (я использую экспресс-сеанс).Однако он также хранит хешированный пароль в сеансе, но я бы не стал этого делать.Есть ли способ просто удалить пароль из сеанса или мне нужно будет создать отдельную переменную сеанса для всего, что я хотел сохранить в сеансе?Например:

User.findOne({email: email})
.then(user => {
    if (!user) {
        return res.status(422).render('auth/login', {
            path: '/login', 
            pageTitle: 'Login', 
            errorMessage: 'Invalid login details', 
            email: email
        });
    }
    bcrypt.compare(password, user.password)
    .then(doMatch => {
        if (doMatch) {
            req.session.isLoggedIn = true;
             req.session.user = user
             return req.session.save((err) => {
                res.redirect('/dashboard');
            }); 
        }

Так что вместо req.session.user = user, возможно, мне придется сделать:

req.session.user.email = user.email
req.session.user.firstName = user.firstName

И так далее.Я пробовал это, но пароль все еще остается в сеансе:

req.session.user = { ...user }
delete req.session.user.password
...