2014-03-28 116 views
4

我正在使用Passport NodeJs,Express登錄頁面。 我是一名Web開發人員,但這是我的第一個NodeJS項目。身份驗證失敗,請求不好:缺少證書

我按照這個教程: http://mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/

但每次我嘗試登錄在登錄頁面,或註冊頁面的時候,我唯一的東西是一個「錯誤的請求」頁面。

我打了一個電話回去看看發生了什麼:

exports.postRegister = function(req, res){         
    login = mongoose.model('login'); 
    login.register(new login ({ username : req.body.email}),req.body.password, function(err, login){ 
     if (err){ 
     return res.render('register', { login: login, error: err, title: "S'enregistrer" }); 
     } 
     // Something is wrong here 
     passport.authenticate('local', function(err, user){ 
      // So let's console log the thing ! 
      console.log(arguments); 
     })(req, res, function(){ 
      res.redirect('/scene/1'); 
     }); 
    }); 
}; 

而且執行console.log(參數)的回報:

{ '0': null, 
    '1': false, 
    '2': { message: 'Missing credentials' }, 
    '3': 400 } 

我檢查我的MongoDB,用戶無需創建問題!

+0

完全一樣的東西剛剛受到我...相同的uto。你找到了自己的路嗎? – Su4p

+0

是的,我只是刪除護照mongoose插件,並手動執行所有的實現:P – Luna

+1

我發現這個http://scotch.io/tutorials/javascript/easy-node-authentication-setup-and-local。它的工作到目前爲止很好 – Su4p

回答

1

看起來你並沒有爲你的login模型指定模式。你需要這樣的聲明型號:

var Model = mongoose.model('Model', 'modelSchema');

+0

我知道,這是因爲我使用護照插件mongo(Account.plugin(passportLocalMongoose);)在本教程中沒有工作,這是官方! http://mherman.org/blog/2013/11/11/user-authentication-with-passport-dot-js/#.U-Ov1_l5N8E – Luna

1

如果你想看看它是否來自郵差或你的代碼,你可以在一個終端的捲曲度測試:

curl -H "Accept: application/json" -H "Content-type: application/json" -X POST -d '{"username": "test", "password": "test"}' http://localhost:3000/api/login 
+0

問題在於Mongoose插件!我有理由將其刪除,手動編碼登錄,它的功能就像一個魅力:P – Luna