Как запросить данные пользователя после входа в систему, Node.JS

1

Привет, ребята, я новичок в 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 с экспрессом, паспортом и рулями.

Спасибо!

  • 0
    это твой счастливый день. мне нужно достижение upvote: P
Теги:
express
handlebars.js
passport.js

2 ответа

1
Лучший ответ

Мне было интересно, как я могу сделать имя пользователя, адрес электронной почты и другую информацию в сеансе или получить доступ к ней, как только мой пользователь войдет в систему, и как я могу добавить дополнительную информацию на сессию позже (это важно, поскольку мне нужно будет сделай это).

Для этого варианта использования есть довольно хороший модуль 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!')
  }
})
  • 0
    Спасибо, я вижу, что ваш пример работает. Мне было интересно, как я могу реализовать это для сохранения переменных сеанса, таких как имя пользователя и т. Д., В другом файле. Например, как добавить имя пользователя в сеанс, например users.js?
  • 0
    Вы можете сохранить все, что вы хотите в свой сеанс / cookie. Обычно вы хотите связать свое имя пользователя с идентификатором cookie.
Показать ещё 4 комментария
1

Как я понимаю из вашего описания, у вас есть проблемы с сеансами. для этого вы можете посетить https://www.npmjs.com/package/session-storage, чтобы включить сессионное хранилище в свой проект, это поможет вам лучше.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню