2015-06-20 74 views
6

我使用護照開發了受oauth2身份驗證保護的restful nodeJS API。手動調用護照進行身份驗證

var express = require('express'); 
    var passport = require('passport'); 
    var port = process.env.PORT || 8080; 
    var app = express(); 

    app.use(passport.initialize()); 

    // Create our Express router 
    var router = express.Router(); 
    var creatureController = require('./controllers/creature'); 

    router.route('/creature').get(passport.authenticate('accessToken', {session: false}), creatureController.getProfile); 

在這種情況下,路由受到保護,它需要發送有效令牌才能訪問路由。

我想找到一種方法來手動驗證我的「用戶」,方法是調用一個函數,該函數採用我想驗證的用戶的用戶名和密碼。

+0

如果您想手動驗證您的用戶,那麼您爲什麼使用護照? –

+0

我認爲他的意思是通過手動調用'authenticate'方法。 –

回答

8

Passport公開了可用於手動登錄用戶的req.login()功能。

app.post('/login', function (req, res, next) { 
    var user = User.findOrCreate(req.body); 
    // … your authentication or whatever 
    req.login(user, function(err){ 
     if(err) return next(err); 
     res.redirect('/home'); 
    }); 
});