2013-07-13 4 views
1

Я создаю простое приложение для веб-приложений в экспресс, и я немного застрял в аутентификации для своих сеансов, и я собираюсь проверить все на клиенте с помощью магистрали и regExp в конце концов, когда я начну создавая переднюю часть приложения. no basycally у меня проблема с запросом в mongoose, возвращающем объект документа mongoose. Я искал пару решений, в запросе вы можете использовать .lean() для получения объекта или захватить возврат из запроса и применить .toObject(), что все работает отлично и денди, однако, когда Я пытаюсь и аутентифицирую значение ключа с строкой, которая возвращает false. я отправлю пример кода, его не совсем то, что у меня есть, но его достаточно близко, чтобы получить смысл.аутентификация узла + экспресс + mongoose

это будет примером моих моделей файл

var User = new Schema({}, { strict: false }); 

User.method('authenticate', function(plainText) { 
var object = this.toObject(); 
return plainText == object.password; }); 
mongoose.model('User', User); 
mongoose.connect(definitions.dbConnect); 

и в моем файле приложения я бы что-то вроде

app.get('/session', routes.showLogin); 
app.post('/session/new', routes.login); 

и в моем пути файла идентификатору есть что-то вроде

exports.login = function(req, res){ 


var userQuery = new RegExp(req.body.username , 'i'); 
var passwordQuery = new RegExp(req.body.password, 'i');  
var Query = User.find(); 

Query.findOne().where('username', userQuery).exec(function(err, user){ 

     if(user && user.authenticate((req.body.password))){ 
        req.session.userId = user._id; 

       }else{ 

        res.redirect('/session'); 
       } 
    }); 
}, 

Любые идеи были бы оценены, вероятно, это очень глупо ...:/

Спасибо!

+0

Я бы начал с определения того, что означает 'plainText' и' object.password', что может дать вам ключ, почему функция возвращает 'false'. – robertklep

ответ

0

YEah robert klep был прав на деньги. После того, как я просмотрел документацию о мангусте и документы mongodb, стало ясно, что запросы возвращают объект документа mongo, в терминах должны быть преобразованы в один и тот же объект или типы переменных для opperands работать.

Смежные вопросы