2015-06-20 9 views
6

Ich entwickle eine erholsame nodeJS API durch eine oauth2 Authentifizierung mit Pass geschützt.Manuell Pass zur Authentifizierung aufrufen

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 diesem Fall ist die Route geschützt und es muss ein gültiges Token gesendet werden, um auf die Route zugreifen zu können.

Ich möchte einen Weg finden, meine "Benutzer" manuell zu authentifizieren, indem ich eine Funktion aufruft, die den Benutzernamen und das Passwort des Benutzers annimmt, den ich authentifizieren möchte.

+0

Wenn Sie Ihre Benutzer manuell authentifizieren möchten, warum verwenden Sie dann einen Reisepass? –

+0

Ich denke, er meint damit, dass man die 'authenticate' Methode manuell aufruft. –

Antwort

8

Passport stellt eine req.login() Funktion zur Verfügung, mit der der Benutzer manuell angemeldet werden kann.

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'); 
    }); 
}); 
Verwandte Themen