2015-06-20 11 views
6

Sviluppo una restful API nodoJS protetta da un'autenticazione oauth2 tramite passaporto.Chiamare manualmente il passaporto per l'autenticazione

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); 

In questo caso, il percorso è protetto e richiede l'invio di un token valido per accedere al percorso.

Desidero trovare un modo per autenticare manualmente i miei "utenti", chiamando una funzione, che accetta nome utente e password dell'utente che voglio autenticare.

+0

Se si desidera autenticare manualmente gli utenti, perché si utilizza il passaporto? –

+0

Penso che intenda chiamando manualmente il metodo 'authenticate'. –

risposta

8

Il passaporto espone una funzione req.login() che può essere utilizzata per accedere manualmente all'utente.

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'); 
    }); 
}); 
Problemi correlati