Я новичок в узле. Недавно я решил создать систему блогов, в которой есть система авторизации, которая создается с помощью модуля паспорта и локальной стратегии.
Я использовал паспортную документацию и некоторые видеоуроки для ее разработки, но я не понимаю, как это работает, я не понимаю логику.
У меня есть форма входа в систему, которая имеет два поля (имя пользователя, пароль) и кнопку отправки.
Вы можете увидеть мой код login.jade здесь. он написан на языке шаблонов нефрита и использует семантический пользовательский интерфейс (что-то вроде начальной загрузки).
form.ui.form(method="POST",action="")
div.field
label Username
div.ui.left.icon.input
i.user.icon
input(type="text",name="username",placeholder="username")
div.field
label Password
div.ui.left.icon.input
i.lock.icon
input(type="password",name="password",placeholder="password")
button.ui.primary.button(type="submit") log-in
и вот мой паспорт местной стратегии
passport.use(new localStrategy(function(username,password,done){
User.checkUserName(username,function(err,user){
if (err) throw err;
if (!user) {
console.log('unknown user');
return done(null,false,{message:'user not found'});
}
if(user.password!=password){
return done(null,false , {message : 'password is wrong'});
}
return done (null,user);
});
}));
checkUserName - это функция в моих моделях (user.js), которая находит имя пользователя в базе данных.
module.exports.checkUserName= function(username,callback){
User.findOne({username:username},callback);
}
Теперь я не понимаю, как работает локальная стратегия. как он понимает, какое поле в моей форме входа в систему для имени пользователя и какое поле для пароля? он принимает только два аргумента (имя пользователя, пароль), но я не знаю, как он определяет, откуда берутся эти аргументы и как он понимает, что это должны быть мои учетные данные формы входа.
Я был бы очень благодарен, если бы кто-нибудь объяснил мне, что здесь происходит.