セッションを処理するために、nodejs、express、および connect-memcaced を使用しています。毎回完全に実行され、セッションデータを設定し、ユーザーをログイン済みとしてマークし、ログインしたページにリダイレクトするログインスクリプトを作成しました。ときどき (常にではありません) 発生するのは、リダイレクトされてページが Cookie をロードした後、sessionID が変更され、ユーザーがコースから外れてログインしなくなることです。これが発生する理由と、毎回発生しない理由を見つけることができませんでした。
ログイン機能のコード スニペット:
DB.getOne('User',{filters:{'primary':{email:req.body.email}}}, function(err,data){
if(data[0] && data[0].active == 1){
var encodedPass = self.encodePass(req.body.pass,req.body.email);
if(encodedPass == data[0].pass){
req.session.pr.user = data[0];
req.session.pr.user.status = true;
res.writeHead(302, {
'Location': goTo
});
res.end();
}
}
});
memcached を直接見ると、これが完全に実行され、データが常に元の sessionID で memcached に保存されていることがわかります。何らかの理由で、リダイレクトによってセッション ID が変更されている必要があります