Привет, ребята, я новичок в Node, поэтому, пожалуйста, несите меня.
В любом случае, я в настоящее время работаю над проверкой подлинности для своего нового приложения Node. До сих пор я был способен получить все основные работы (логин, регистрация, выход из системы). Теперь я вхожу на страницу настроек моего профиля пользователя, но я не могу получить доступ к {{username}} или {{email}}, например, он либо остается пустым, либо возвращает ошибку.
Мне было интересно, как я могу сделать имя пользователя, адрес электронной почты и другую информацию в сеансе или получить доступ к ней, как только мой пользователь войдет в систему, и как я могу добавить дополнительную информацию на сессию позже (это важно, поскольку мне нужно будет сделай это).
Вот мой код:
Регистрация (не включая проверку)
var newUser = new User({
username: username,
email:email,
password: password
});
User.createUser(newUser, function(err, user){
if(err) throw err;
console.log(user);
req.flash('success_msg', 'You are registered and can now login');
Авторизоваться:
router.post('/login',
passport.authenticate('local', {successRedirect:'/', failureRedirect:'/users/login',failureFlash: true}),
function(req, res) {
res.redirect('/');
});
Я не уверен, какой именно код мне нужно показывать, но если вам, ребята, нужно что-нибудь увидеть, чтобы помочь мне, пожалуйста, дайте мне знать.
Я использую Node.JS с экспрессом, паспортом и рулями.
Спасибо!
Мне было интересно, как я могу сделать имя пользователя, адрес электронной почты и другую информацию в сеансе или получить доступ к ней, как только мой пользователь войдет в систему, и как я могу добавить дополнительную информацию на сессию позже (это важно, поскольку мне нужно будет сделай это).
Для этого варианта использования есть довольно хороший модуль NPM:
https://github.com/expressjs/session
Я неплохо поработал с этим.
Просто установите его через NPM, а затем:
var session = require('express-session')
Вот как вы его используете:
// Use the session middleware
app.use(session({ secret: 'keyboard cat', cookie: { maxAge: 60000 }}))
// Access the session as req.session
app.get('/', function(req, res, next) {
if (req.session.views) {
req.session.views++
res.setHeader('Content-Type', 'text/html')
res.write('<p>views: ' + req.session.views + '</p>')
res.write('<p>expires in: ' + (req.session.cookie.maxAge / 1000) + 's</p>')
res.end()
} else {
req.session.views = 1
res.end('welcome to the session demo. refresh!')
}
})
Как я понимаю из вашего описания, у вас есть проблемы с сеансами. для этого вы можете посетить https://www.npmjs.com/package/session-storage, чтобы включить сессионное хранилище в свой проект, это поможет вам лучше.