2012-05-09 78 views
3

我正在使用Passport-Local(https://github.com/jaredhanson/passport-local)對node.js進行身份驗證。到目前爲止,這個例子用得好好的,因爲用戶thorugh後網絡表單登錄:如何使用node.js通過get-request Passport進行身份驗證?

app.post('/login', 
    passport.authenticate('local', { failureRedirect: '/login', failureFlash: true }), 
    function(req, res) { 
     res.redirect('/'); 
}); 

但是現在,我想通過調用一個特定的URL編寫一個基於JSON的API來驗證用戶身份。雖然將代碼塊修改爲app.get(…不起作用。

有什麼建議嗎?

+0

更新:似乎護照使用'req.body'作爲用戶名/密碼。如果我攻擊本地護照以使用'req.query',它就可以工作。不是我喜歡的做法,雖然... –

回答

2

我碰到了同樣的問題,並通過添加這對我的路由處理程序進行登錄解決了這個問題:

req.body = req.query; 

也許不是完美的解決方案,但它肯定是比黑客護照更好。 ;)

另外請注意,有一個在護照本地掛起請求來解決這個問題:你

它允許通過GET來驗證使用令牌給用戶https://github.com/jaredhanson/passport-local/pull/12

0

也許https://github.com/yarax/passport-url戰略將是有益的請求

var url = new UrlStrategy({ 
    failRedirect : "/login", 
    varName : "secret" 
}, function (secret, done) { // put your check logic here 
    if (secret == 'foo') done(null, {id:'bar'}); 
    else done("wrong"); 
}); 

passport.use(url); 
+0

這個問題是相當過時,因爲它即將有它的第三個週年紀念日:-)謝謝你的回覆! –

相關問題