我安裝了清漆,一切正常。清漆 - 如何緩存登錄用戶
但是,我需要緩存登錄用戶。這是我在我的VCL中所擁有的:
backend default {
.host = "127.0.0.1";
.port = "8080";
}
sub vcl_recv {
unset req.http.Cookie;
if (req.http.Authorization || req.http.Cookie) {
return (lookup);
}
return (lookup);
}
sub vcl_fetch {
unset beresp.http.Set-Cookie;
set beresp.ttl = 24h;
return(deliver);
}
上述工作,但用戶可以查看其他用戶的數據,例如假設我以Sam的身份登錄並訪問了頁面A.當另一個用戶Angie登錄並打開頁面A時,她看到的內容與Sam相同。
有沒有一種方法可以將頁面限制爲實際被授權查看該頁面的登錄用戶?
我的請求頭如下:
Request Headersview source
Accept text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Encoding gzip, deflate
Accept-Language en-US,en;q=0.5
Authorization Basic YWRtaW46YWRtaW4=
Connection keep-alive
Cookie tree-s="eJzTyCkw5NLIKTDiClZ3hANXW3WuAmOuRKCECUjWFEnWIyIdJGvGlQgEegAD3hAj"; __ac="0zVm7PLtpaeQUXtm9BeYrC5%2BzobmBLPQkjRtxjyRGHs1MGY1MTgzZGFkbWluIQ%3D%3D"; 'wc.cookiecredentials'="0241d135445f7ca0b1cb7aced45da4e750f5414dadmin!"
我可以使用Authorization
項的請求頭實施這一限制?
這樣做可以在網頁本身沒有任何修改,即esi標籤,只是通過VCL做到這一點? – Frankline
對於ESI,您需要大幅改變頁面。就cookie而言,如果您的網頁只爲已登錄並在退出時(或會話過期)清除的用戶設置了Cookie,則可以在我的答案中使用VCL(根據您的需要進行修改),以便刪除多餘的Cookie。 – Ketola