Узлы: 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
является методом обратного вызова, чтобы вызвать дальнейшее поведение паспорта.