Я создаю систему учетных записей пользователей для своего нового сайта, используя node.sdk, stormpath, express.js и passport.js. Поэтому я создал учетную запись с пользовательским слотом данных. Я хотел бы знать, как я могу публиковать новые данные в этом пользовательском слоте данных, когда они выходят из системы и извлекают его при входе в систему. Я начал использовать новый узел, и я не знаю, куда поместить мой код или как получить доступ «пользовательская» информация учетной записи, когда они вошли в систему. Из того, что я могу сказать, паспорт.js обрабатывает аутентификацию, поэтому я, вероятно, не могу видеть электронную почту пользователей, чтобы искать URL-адрес своей учетной записи пользователя на маршруте штурма ... возможно, m что-то здесь отсутствует ??Вызов и сохранение пользовательских данных пользователя Пользовательские данные
router.post('/register', function(req, res) {
var username = req.body.username; var password = req.body.password;
// Grab user fields. if (!username || !password) { return res.render('register', { title: 'Register', error: 'Email and password required.' }); }
// Initialize our Stormpath client. var apiKey = new stormpath.ApiKey(process.env['STORMPATH_API_KEY_ID'], process.env['STORMPATH_API_KEY_SECRET']); var spClient = new stormpath.Client({ apiKey: apiKey });
var app = spClient.getApplication(process.env['STORMPATH_APP_HREF'], function(err, app) { if (err) throw err;
account = {
givenName: 'John',
surname: 'Smith',
username: username,
email: username,
password: password,
customData:{
favList:'',
},
};
app.createAccount(account, function (err, createdAccount) {
if (err) {
return res.render('register', {'title': 'Register', error: err.userMessage });
} else {
passport.authenticate('stormpath')(req, res, function() {
return res.redirect('/home');
});
}
});
});
});
// Извлеките страницу входа. router.get ('/ login', function (req, res) { res.render ('login', {title: 'Login', error: req.flash ('error') [0]});}) ;
// Аутентификация пользователя. router.post ('/ login', passport.authenticate ('stormpath', {successRedirect: '/ home', failureRedirect: '/ login', failureFlash: 'Ой, я думаю, вам нужна учетная запись, чтобы войти сюда. ',}));
// Извлеките страницу приборной панели. router.get ('/ home', function (req, res) {if (! req.user || req.user.status! == 'ENABLED') {return res.redirect ('/ login');}
res.render ('home', {title: 'Home', user: req.user,});});
Ооооооооооооооооооооооооооооол! Просто дай мне понять это правильно; Я могу получить доступ к электронной почте пользователей с помощью user.email ??? – CHeffernan087
Правильно, user.email предоставит вам адрес электронной почты учетной записи – robertjd