2013-02-25 1 views
0

Я использую Экспресс 3.x и Connect-Монго и модуль запросаnodejs скопировать кук для запроса внутреннего приложения

My App имеет некоторые промежуточное программное обеспечение, что обеспечивает внешний запрос имеет access_token. Проверяется access_token, и некоторые данные хранятся в сеансе. Затем я хочу сделать внутренний вызов URL-адреса в приложении, но внутренний вызов получает новый сеанс (в качестве отдельного запроса от запроса браузера пользователей). Что я хочу сделать, так это скопировать файлы cookie, подписанные Express, во внутренний запрос(), чтобы промежуточное программное обеспечение выполняло действия на основе исходного внешнего идентификатора сеанса. Я пробовал передать кусок файла cookie в объект запроса, но он, похоже, не очень хорошо поддерживает подписанные файлы cookie. Любые идеи, как я могу это сделать?

/* Middleware to check access tokens */ 
app.all("/*", requireAuth, function(req, res, next) { 
    next(); 
}); 

function requireAuth(req,res,next) { 

if (req.query.access_token && !req.session) { 

    // Check the access token and popualte stuff in the session 
    req.session.somedata = 'test'; 

    // Then call a url internall to do something 

    // My issue is that this INTERNAL request below gets a new session Id 
    // so it itself returns Not Authorised as its hits the same code 

    request({ 
     url: 'someurlinside-this-node-app', 
     method: "GET" 
    }, function _callback(err, serviceres, body) { 
     next(); 
    }); 

}else{ 
    res.send('Not Authorised'); 
} 

} 

ответ

0

Печенье просто еще один заголовок, так что если вы хотите, чтобы передать его, вы должны быть в состоянии сделать это:

var cookies = req.header('Set-Cookie'); 

request({ 
     url: 'someurlinside-this-node-app', 
     method: "GET", 
     headers: { 'Set-Cookie' : cookies} 
    }