Как получить доступ к данным сохранения сеанса

Я использую модуль Restify для создания REST-сервера и использую модуль Restify-session для сохранения учетных данных пользователя. Однако я не могу получить данные сеанса сохранения. В моем объекте запроса нет данных сеанса, которые я сохранил ранее. Я попробовал метод загрузки объекта сеанса и параметр данных функции обратного вызова, и он содержит только SID. И похоже, что у Restify не так много ресурсов в Интернете. Я не мог найти много в Интернете. Я очень ценю, если кто-нибудь может указать мне правильное направление. Это моя попытка

restify = require('restify'),
session = require('restify-session')({
    debug : false,
    ttl : 60            // Time to live in seconds
});
server  = restify.createServer();
server.use(session.sessionManager);
server.listen(8001);

server.post('/session', start);
server.post('/homepage', loadHomePage);

function start(req, res, next) {    
   var data = {user: req.query.credential}; // Base-64 encoding of username and password                

   session.save(req.session.sid, data, function(err, status){
       if(err) {
           console.log("Session data cannot be saved");
           return;
       }        
       console.log("status-" + status + data.user); //debug code
   });

function loadHomePage(req, res, next) { 

   session.load(req.session.sid,function(err,data){
       if(err) {
           res.writeHead(440, 'Login Time Out', {'Content-Type': 'application/json'});
           res.end("{'Status': 'Error', 'Message': 'Session expired or does not exist'}");
           return;
       }
       for(var n in data) { // Checking what properties data has
          console.log(n);   // Shows only SID value
       }

});

ОБНОВЛЕНИЕ: я узнал, что происходит. Restify-Session генерирует новый идентификатор сеанса для каждого запроса. Вот почему я не могу найти сохраненные данные. Но я не знаю, как решить эту проблему.


person KMC    schedule 02.06.2015    source источник


Ответы (1)


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

person KMC    schedule 03.06.2015
comment
Привет! Есть шанс получить обновленный пример кода? Как установить cookie и избежать restify-session для создания нового sid при каждом запросе Спасибо - person Igal; 03.07.2017
comment
Глядя на источник (github.com/mgesmundo/restify -session / blob / master / lib /), вам просто нужно передать идентификатор сеанса заголовка (при условии, что вы используете настройки по умолчанию) в своем запросе со значением, полученным из исходного вызова. - person pkid169; 23.08.2017