2015-06-20 13 views
6

Tworzę restful nodeJS API chroniony uwierzytelnianiem oauth2 przy użyciu paszportu.Ręczne wywoływanie paszportu w celu uwierzytelnienia

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

W tym przypadku trasa jest chroniony i wymaga, aby wysłać poprawny wyraz w celu dostępu do trasy.

Chcę znaleźć sposób uwierzytelnienia moich "użytkowników" ręcznie, wywołując funkcję, która przyjmuje nazwę użytkownika i hasło użytkownika, który chcę uwierzytelnić.

+0

Jeśli chcesz uwierzytelnić użytkowników ręcznie, to dlaczego korzystasz z paszportu? –

+0

Myślę, że oznacza on przez ręczne wywoływanie metody "authenticate". –

Odpowiedz

8

Paszport udostępnia funkcję req.login(), której można użyć do ręcznego zalogowania użytkownika.

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