nodejs + express + appfog img资源的不同会话

时间:2013-08-11 23:02:17

标签: node.js express session-cookies sessionid appfog

我有以下代码来验证用户是否已登录到我的应用程序。

我的问题是,一旦用户登录,img请求的会话与我为用户保存的会话不同。

我有以下代码来验证用户是否已登录到我的应用程序。

    app.all('*', function(req, res, next) {
    res.header("Access-Control-Allow-Origin", "*");
    res.header("Access-Control-Allow-Headers", "X-Requested-With");
    globalApp.mongo.getUserBySessionId(req.sessionID,function(user){
        console.log("SessionID :"+req.sessionID);
        console.log("User : "+ JSON.stringify(user));
        console.log("Route : "+JSON.stringify(req.route.params));
        if(user){
            req.user = user;
            res.locals.user = req.user;
            res.locals.security = globalApp.security;
        }else{
            if(publicPaths.indexOf(req.route.params[0])==-1){
                res.send({error:true,reason:'You are not logged in, please re-start the app.'});
                return;
            }
        }
        next();
    });
});

我正在请求这样的图像:

<img src="/images/loading.gif" width="49" height="49"/>

有趣的是,正确地提供了所有其他类型的文件.Server正在为每个img请求创建一个新会话。

此外,这只发生在我的应用程序在appfog上运行时。在我的电脑(localhost)中它运行正常。

有什么建议吗?

非常感谢。

1 个答案:

答案 0 :(得分:0)

我知道我迟到了,但我遇到了同样的问题。似乎AppFog为图像剪切了cookie,可能是其他一些资源,因此没有简单的方法来控制会话的图像访问。您可以将资源“/images/loading.gif”重命名为“/ images / loading”以获取exmaple。 http://feedback.appfog.com/forums/171983-appfog/suggestions/4299861-do-not-cut-cookie-for-images-and-other-resources