1

ユーザーがアプリにログインしているかどうかを検証する次のコードがあります。

私の問題は、ユーザーが 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"/>

面白いことに、他のすべてのタイプのファイルは適切に処理されています。サーバーは、img リクエストごとに新しいセッションを作成しています。

また、これはアプリが appfog で実行されている場合にのみ発生します。私のコンピューター (localhost) では正常に動作します。

何かアドバイス?

どうもありがとう。

4

1 に答える 1

0

私は遅れていることを知っていますが、同じ問題がありました。AppFog は画像の Cookie をカットしているようで、他のリソースである可能性があるため、セッションで画像へのアクセスを制御する簡単な方法はありません。たとえば、リソース「/images/loading.gif」の名前を「/images/loading」に変更できます。 http://feedback.appfog.com/forums/171983-appfog/suggestions/4299861-do-not-cut-cookie-for-images-and-other-resources

于 2013-09-23T17:52:09.953 に答える