2

Я работаю над созданием системы входа пользователя с помощью Nodejs. У меня есть несколько вопросов, на которые я, похоже, не могу найти ответ (я использую Local Strategy using Passport).Nodejs: Информация о пользователе/​​база данных и аутентификация (паспорт)

1) Создание/Хранение User Account

Документация паспорт указать что-то вроде:

User.findOne({username: username }, function(err, user){ if(err){return done(err);} if(!user){ return done(null, false, {message: "Incorrect Username."}); } if(!user.validPassword(password)){ return done(null, false, {message: 'Incorrect Password.'}); } return done(null, user); });

или

passport.deserializeUser(function(id, done){ 
User.findById(id, function(err,user){ 
    done(err, user); 
}); 

});

Я не знаю, откуда появился «Пользователь», поскольку при попытке входа в систему я получаю ошибку «Пользователь не определен». Я предполагаю, что мне нужно создать какую-то базу данных, но я не уверен, как это сделать (ни документация, ни онлайн-источники не указывают на необходимость сделать это). Что такое «Пользователь»?

Как я могу сделать «создание учетной записи» и сохранить учетную запись пользователя в (локальную) базу данных?

2) Получение информации пользователя/Хранение данных пользователя после

После входа пользователя в систему, мне нужно, чтобы получить некоторые конкретные данные, связанные с этой учетной записи, такие как имя пользователя. У пользователей также будет «рейтинговая точка», поэтому мне также нужен способ получить это. Когда пользователь, скажем так, «выигрывает» в игре, которую у меня есть, пользователь получает «рейтинговые очки», и мне нужно обновить его и к конкретной учетной записи. Как мне это сделать? Это делается с помощью паспорта, а также (или паспорт только для проверки подлинности?)

+0

Что вы подразумеваете под "Local Strategy?" Паспорт обычно используется для аутентификации против внешних поставщиков, таких как Facebook. Вы пытаетесь снова аутентифицировать свой собственный внутренний список пользователей? Что-то вроде этого https://devdactic.com/restful-api-user-authentication-1/? – Charlie

+0

Ifaik, Passport имеет 3 общих «Стратегии»: локальный, Facebook и API. Я использую Local Stategy из них, которые, как я полагаю, внутренне аутентифицируют пользователей. – FudgeNouget

ответ

0

Для локального примера стратегии здесь: https://github.com/passport/express-4.x-local-example

Пользователи жестко прописаны в файле users.js:

var records = [ 
    { id: 1, username: 'jack', password: 'secret', displayName: 'Jack', emails: [ { value: '[email protected]' } ] } 
    , { id: 2, username: 'jill', password: 'birthday', displayName: 'Jill', emails: [ { value: '[email protected]' } ] } 
]; 

для примера того, как построить весь приложение см (это уже был дан ответ на SO здесь: Comprehensive tutorial for nodejs passport local-strategy setup?):

https://scotch.io/tutorials/easy-node-authentication-setup-and-local

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