我在Symfony Web应用程序前面使用CloudFront作为缓存.要根据用户的角色(admin,customer,...)获取缓存,我会在Lambda @ Edge Viewer请求触发器中生成基于用户角色的哈希.我将该哈希作为请求标头传递给我的原点X-User-Context-Hash.
我现在的问题是我需要将PHPSESSIDcookie 传递给我的源,以获得正确的缓存响应,但我不想将缓存基于值的PHPSESSID.我只需要根据X-User-Context-Hash我的会话cookie 的值而不是我的缓存响应.
下面的图片应该详细解释我的问题
有没有可能实现这一目标?
非常感谢任何帮助.
这是我的Lambda @ Edge Viewer请求触发器:
'use strict';
function parseCookies(headers) {
const parsedCookie = {};
if (headers.cookie) {
console.log(`${headers.cookie[0].value}`);
headers.cookie[0].value.split(';').forEach((cookie) => {
if (cookie) {
const parts = cookie.split('=');
parsedCookie[parts[0].trim()] = parts[1].trim();
}
});
}
return parsedCookie;
}
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
const headers = request.headers;
const https = require('https');
// Read session cookie
const parsedCookies …Run Code Online (Sandbox Code Playgroud) amazon-web-services symfony amazon-cloudfront aws-lambda foshttpcachebundle