Узлы: Passport-local против пользовательской аутентификации пользователя

Я довольно новичок в Nodejs/ExpressJS, однако у меня достаточно опыта в разработке веб-бекенда в ROR.

Я создал небольшое веб-приложение в Node/Express, используя passport-local. и так как я использовал Mongodb, был даже плагин для этого https://github.com/saintedlama/passport-local-mongoose. Я использовал это.

var User = new Schema({
    username: String,
    password: String,
});

Я могу зарегистрироваться / войти / выйти. так что основное приложение работает.

Теперь мой вопрос заключается в том, использует ли паспорт хорошо, если у меня есть только local подход аутентификации. (не требуется социальный вход). это означает, что аутентификация с использованиемexpress and mongoose только без дополнительного плагина.

если да, то как я могу сделать аутентификацию, используя только эти данные, любой источник или подсказку?

В случае, если мне нужно использовать паспорт (или вы рекомендуете паспорт, потому что это промежуточное ПО аутентификации поддержки, хотя я не уверен в этом), как я могу игнорировать passport-local-mongoose создать модель пользователя и аутентификацию, используя только паспорт и экспресс.

1 ответ

Вы можете написать свой собственный обработчик аутентификации для паспорта, который подключен к любому источнику, содержащему ваши логины.

// And this handler to your local strategy initialization
var localStrategyHandler = function (email, password, done) {

    // Here you can write any function which validates the email and password against the storage yo've used
    Accounts.getAccount(username, password).then(function (account) {
        if (account !== null) {
            return done(null, account); // If login attempt was successfull return a user object using the done callback
        } else {
            return done(null, false, 'ACCOUNT_NOT_FOUND'); // If login failed return a failure like this example
        }
    }).catch(function (error) {
        return done('LOGIN_ERROR');
    });
};

 // Thats how you initilize a strategyHandler
 passport.use(new LocalStrategy(localStrategyHandler));

функция doneявляется методом обратного вызова, чтобы вызвать дальнейшее поведение паспорта.

Другие вопросы по тегам