当在AWS Lambda函数中使用API Gateway发送多个Set-Cookie头时,只有最后一个Set-Cookie头会被接受。这是因为API Gateway在返回响应时会合并所有的Set-Cookie头,只保留最后一个。
要解决这个问题,可以在返回的响应头中使用单个Set-Cookie头,并将多个cookie值合并为一个字符串。以下是一个示例代码,演示如何在AWS Lambda函数中实现此功能:
exports.handler = async (event) => {
const response = {
statusCode: 200,
headers: {
'Content-Type': 'text/html',
'Set-Cookie': 'cookie1=value1; cookie2=value2; cookie3=value3'
},
body: 'Hello from Lambda!'
};
return response;
};
在上面的示例中,我们将多个cookie值合并为一个Set-Cookie头,并使用分号分隔每个cookie值。这样,API Gateway将接受并返回所有的cookie值。
另外,确保在使用API Gateway时,已启用了“启用代理整合请求”选项。这将确保API Gateway将完整的响应头传递给调用方。
通过以上方法,您可以在AWS Lambda函数中成功发送多个Set-Cookie头。