Переменная req.session Express.js не хранит переменные сеанса через разные маршруты - PullRequest
1 голос
/ 11 декабря 2011

Невозможно получить доступ с req.session variable. Я установил req.session.username на someVariable, но получаю не определено. Позволяет ли следующая установка Express получить доступ к переменной req.session на каждом маршруте?

app = express.createServer(
    express.logger(),
    express.cookieParser(),
    express.session({ secret: 'keyboard cat' })
    )

Экспресс-сайт, кажется, использует таким образом.

EDIT:

Вот другой код, который я использую:

if(result[0] != undefined && result[0].Password == req.body.user.pass){
    console.log("login successfull");

    //Setting in the cookies some variable useful later
    req.session.userAuthenticated = true;
    req.session.username = result[0].Username;
    req.session.projects = result[0].Projects;

Это часть маршрута /login. В этой части я проверяю, правильно ли пользователь ввел пароль и зарегистрирован ли он. Если я сделаю console.log(req.session.username), я получу правильное имя пользователя, вошедшего в систему.

На другом маршруте назовите его /wathever Я проверяю после получения БД, как это

if(projects[i].name == projectName && projects[i].username == req.session.username){

projectName - это то, что я получаю от пользователя как POST, и оно работает, оно имеет правильное содержание, но если я проверяю req.session.username, я получаю undefined. Кажется, переменная сеанса не содержит того, что я положил внутрь на предыдущем маршруте ...

Спасибо

1 Ответ

1 голос
/ 11 декабря 2011

Убедитесь, что result[0].Username && result[0].Projects не определены.

Также у вас есть другая проблема в вашем коде, вы не проверяете, являются ли req.body.user и req.body.user.pass неопределенными. Например, я мог бы отправить запрос на ваш сайт с параметрами «test = ok», поэтому без этих переменных, и он показал бы мне страницу внутренней ошибки.

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