就我而言,爲了讓服務器端應用程序知道客戶端與它通信的是什麼,它將使用會話ID在客戶端中保存一個cookie。當客戶端也是ExpressJS應用程序時,Cookie處理
這的確是什麼express-session
流行的包在ExpressJS會話存儲表示文檔
注意會話數據不會保存在cookie本身,只是會話ID英寸會話數據存儲在服務器端。
所以我相信我可以假設這是Express用來維護會話中用戶數據的策略。
我做了其他的事情:我使用Redis將會話數據存儲在ExpressJS服務器應用程序中。
所以說,我的問題是,我的客戶端應用程序也是一個快速應用程序。我有一個適用於客戶端和服務器的Expressj的應用程序。有一個SPA涉及這個問題,但它與'快遞客戶'溝通,所以它似乎是一個不同的問題。
所以每次我從Express客戶端發送請求到Express服務器中,沒有使用網站傳遞,因此它不能識別會話ID並創建一個新的,產生大量的垃圾Redis的和做的會議解決方案無用。
我應該如何在Express客戶端應用程序中保存或僞造一個cookie,或者甚至更好地解決這類問題?
實際上,如果我知道Express Server在請求(cookie,頭文件或其他)期望的內容,我想我可以解決這個問題。
任何人都知道該怎麼辦?
@Solved
好了,所以,在我的NodeJS客戶端應用程序,我做了以下內容:
login(req,res,next){
var options = {
url : 'http://localhost:8090/user/login_handler';
};
request(options, function(error,response,body) {
var cookie_string = response['headers']['set-cookie'][0].split(';')[0];
req.session.cookie_string = cookie_string;
});
}
check(req,res,next){
var options = {
url : 'http://localhost:8090/user/check_handler',
headers: {
'cookie':req.session.cookie_string
}
};
request(options, function(error,response,body){
res.json(body);
});
}
總之,在服務器端創建會話時,它會與迴應頭文件告訴客戶創建一個cookie。我保存重要信息以在不同時刻作爲cookie傳遞。服務器端然後讀取中間件中的頭文件並將相關數據加載到會話中。
我不知道我明白你想完成什麼。如果您沒有將cookie發送到「Express Server」應用程序,爲什麼使用「express-session」模塊? – jwags