最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何从登录,进入使用passport.js页禁止被禁用的用户?

运维笔记admin10浏览0评论

如何从登录,进入使用passport.js页禁止被禁用的用户?

如何从登录,进入使用passport.js页禁止被禁用的用户?

我使用MongoDB中软删除功能禁用用户,而不是永久删除。现在,只有启用的用户可以登录到该网站,而禁用的用户无法登录到该网站。

// Soft delete feature

    exports.getDisabledUsers = function(req,res, next) {
        User.find({active: false}, function(err, users) {
            if (err) {
                res.send(err);
            }
            res.json(users);
        });
    }

    // Log In

    exports.login = function (req, res, next) {

        var userInfo = setUserInfo(req.user);

        res.status(200).json({
            token: 'JWT ' + generateToken(userInfo),
            user: userInfo
        });

    };

    // Passport.js

    var localLogin = new LocalStrategy(localOptions, function (email, password, done) {

        User.findOne({
            email: email
        }, function (err, user) {

            if (err) {
                return done(err);
            }

            if (!user) {
                return done(null, false, {
                    error: 'Login failed. Please try again.'
                });
            }

            userparePassword(password, function (err, isMatch) {

                if (err) {
                    return done(err);
                }

                if (!isMatch) {
                    return done(null, false, {
                        error: 'Login failed. Please try again.'
                    });
                }

                return done(null, user);

            });

        });

    });

禁用用户应该能够登录。现在,他们都能够登录。

回答如下:

您还没有检查用户状态为激活。这可以通过在代码中添加条件,或修改查询蒙戈和添加在findOne一个条件来完成。

//码

如果(!user.active){

//返回用户未打开

}

// MONGO QUERY

User.findOne({电子邮件:电子邮件,活跃:真正},功能(ERR,用户){//你的代码}

发布评论

评论列表(0)

  1. 暂无评论