节点js中的身份验证(来自json数据)

时间:2016-02-02 07:53:52

标签: json node.js mongoose

这是我在mongoose中的模型,我必须从中验证用户名和密码

var employee =  
    {
        empCode : { type : String  ,  unique: true ,  required : true },
        firstName : { type : String  , required : true },
        lastName : { type : String },
        email :  { type : String  },
        DOJ :{ type : Date , default: Date.now },
        DOB :{ type : Date  },
        phoneNo : { type : String },
        authentication : 
            {
                username : { type : String },
                password : { type : String }
            },

        status : {type:Boolean}
    };

我想在登录时使用身份验证检查我正在尝试的是

loginController.prototype.userValidator = function(req , callback){
    objDB.selectOne(objMdlEmployee , { authentication.username : req.username , authentication.password : req.password } , function(err , ObjDocument){

        if(err){        
            callback(false , config.msg.SOMTHING_WRONG);
        }else if(ObjDocument===null){
            callback(false , config.msg.AUTH_FAIL);
        }
        else {      
            req.session.sessUser = {
                userAuthenticate : true, 
                firstName : ObjDocument.firstName,
                employeeId : ObjDocument.employeeId
            }   
            callback(true , 'Valid');
        }
    });
};

但它给了我错误

  

意外的令牌。   在authentication.username

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

1 个答案:

答案 0 :(得分:1)

必须引用子字段,如:

objDB.selectOne(objMdlEmployee , { 'authentication.username' : req.username , 'authentication.password' : req.password } , function(err , ObjDocument){