2016-06-11 5 views
0

Я хочу создать довольно простую аутентификацию в своем веб-приложении NodeJs, используя паспорт localStrategy.Аутентификация локальной стратегии паспорта NodeJs

app.post('/login', function(req, res) { 
    console.log('before auth'); 
    passport.authenticate('local'), 
    function(req, res) { 
     // If this function gets called, authentication was successful. 
     // `req.user` contains the authenticated user. 
     // res.redirect('/users/' + req.user.username); 
     console.log('auth is ok'); 
    } 
}); 

Что я сделал:

  1. У меня есть веб-форму с полями входа в систему и пароль и действие = «/ логин»

  2. В маршрутизаторах в моем приложении у меня есть маршрут логин:

После представленной формы я могу видеть на моей консоли «до авторизации», что означает, что t маршрутизатор работает. Но я не могу видеть, что «auth is ok» означает, что аутентификация не удалась.

Как я могу реализовать функцию passport.authenticate в своем приложении?

+0

Возможно, вам следует начать с [кода примера] (https://github.com/passport/express-4.x-local-example). – robertklep

+0

@robertklep спасибо. Ваш пример работает на меня. Я попытаюсь сравнить ваш и мой код и попытаться найти, где моя ошибка ... –

+0

@robertklep вы можете рассказать мне, что в ссылке, которую вы нам дали, что когда автор использует 'cb', я могу заменить слова «сделано». 'done' очень много используется в документации. Мне было интересно, если 'done' и' cb' были взаимозаменяемыми –

ответ

0
var passport = require('passport'); 
var LocalStrategy = require('passport-local').Strategy; 

    passport.use(new LocalStrategy({ 
    usernameField: 'email', 
    passwordField: 'password' 
    }, function(email, password, next) { 
    //do what you want here 
    //call next(pass parameter here (i.e error, object) 
    })); 


app.post('/login', function(req, res) { 
     console.log('before auth'); 
     passport.authenticate('local', function(err, anotherthing){ 
     //err and anotherThing are the parameters send by strategy (next function). 

     }); 
    }); 

Также посмотрите here. Для получения дополнительной информации для этого. С уважением

+0

Извините, что мой вопрос был недостаточно ясным. Мне нужна помощь в реализации локальной стратегии реализации. Другими словами, что мне нужно сделать для аутентификации пользователя в моем веб-приложении? –

+0

@AlexZhulin Я обновил ответ, чтобы помочь вам понять, как реализовать Стратегию. Также размещена ссылка на другую тему со ссылками, которые помогут вам. –

+0

Я добавил passport.use (новый localStrategy ({ usernameField: 'электронная почта', passwordField: 'ПАРОЛЬ' }, функция (имя пользователя, пароль, рядом) { console.log ('LocalStrategy'); следующий (); } )); как вы предположили, но кажется, что этот мир кода не вызывался, потому что я не могу видеть в сообщении журнала LocalStrategy ... Не могли бы вы предложить мне, где я ошибаюсь? Заранее спасибо –

Смежные вопросы