Установка и получение данных из сеанса с экспресс - PullRequest
0 голосов
/ 08 марта 2019

Я создаю небольшое приложение с помощью node.js и Express. В этом приложении есть 2 маршрута на сервере, один для пользователей и один для ошибок, которые пользователи могут добавлять.

Моя цель - сохранить пользователя в сеансе с помощью sessionExpress, а затем извлечь его при каждом добавлении ошибки в систему.

Мой код:

  app.get('/api/login',(req,res)=>{
    const user = req.body
    userService.checkLogin(user)
    .then(user=>{
        req.session.user = user   
        res.send(user)
    }).catch(err=>res.end(err))
})

здесь я сохраняю пользователя в сеансе.

   app.post('/api/bug/', (req, res) => {
    const bug = req.body
  console.log(req.session.user)
    bugService.add(bug)
        .then(bug => res.json(bug))
})

На другом маршруте я пытаюсь вернуть пользователя, но req.session.user возвращает undefined!

Любая помощь будет высоко ценится!

Если вам понадобится больше кода, пожалуйста, дайте мне знать

const express = require('express');
const bodyParser = require('body-parser')
const session = require('express-session')
const cookieParser = require('cookie-parser')
var app = express()


app.use(bodyParser.json())
app.use(bodyParser.urlencoded({ extended: false }))
app.use(express.static("public"));
app.use(session({
    secret: 'secret',
    resave: false,
    saveUninitialized: true,
    cookie: { secure: false,maxAge:null }
}))
app.use(cookieParser());

Ответы [ 2 ]

0 голосов
/ 09 марта 2019

Вы регистрируете промежуточное ПО в неправильном порядке. анализатор файлов cookie должен предшествовать сеансу, так как экспресс-сеанс использует файлы cookie для сохранения сеанса.

Обратите внимание, что маршрутизатор приложения должен прийти ПОСЛЕ обоих из них

0 голосов
/ 08 марта 2019

Если вы работаете с http, можете ли вы использовать доверенный прокси-сервер: 1 и установить для параметра true значение true. В противном случае cookie-парсер не распознает файлы cookie.

И из внешнего интерфейса убедитесь, что вы делаете запросы с использованием учетных данных.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...