Cookies 如何确保CloudFront从我的Elastic Beanstalk REST API应用程序返回cookie

Cookies 如何确保CloudFront从我的Elastic Beanstalk REST API应用程序返回cookie,cookies,amazon-elastic-beanstalk,amazon-cloudfront,Cookies,Amazon Elastic Beanstalk,Amazon Cloudfront,我在AWS Elastic Beanstalk中部署了一个用于REST API的Java Spring启动应用程序。它是HTTP而不是HTTPS 我们称之为http://foobar.elasticbeanstalk.com/api 我使用AWS CloudFront发行版终止HTTPS,但不缓存任何内容(我已将缓存策略设置为“托管缓存禁用”) 我们称之为https://dfoobar123.cloudfront.net 有些API要求客户端“登录”。有一个调用,/login,它导致在响应coo

我在AWS Elastic Beanstalk中部署了一个用于REST API的Java Spring启动应用程序。它是HTTP而不是HTTPS

我们称之为
http://foobar.elasticbeanstalk.com/api

我使用AWS CloudFront发行版终止HTTPS,但不缓存任何内容(我已将缓存策略设置为“托管缓存禁用”)

我们称之为
https://dfoobar123.cloudfront.net

有些API要求客户端“登录”。有一个调用,
/login
,它导致在响应cookie中返回访问令牌。后续调用必须包括该访问令牌才能成功

当我转到(Elastic Beanstalk应用程序directly)时,服务器会让我登录并返回cookie

但是,当我转到CloudFrontDistribution时,我可以看到服务器对我进行身份验证,但我没有在响应头中获得cookie


我需要在CloudFront中启用什么设置才能启用此功能?

您需要在缓存行为中转发Cookie。如果没有此设置,CloudFront将从响应中删除设置的Cookie头

以下是:

可以将每个缓存行为配置为执行以下操作之一:

不要将cookie转发到您的源站–CloudFront不会基于查看器发送的cookie缓存您的对象。此外,CloudFront会在将请求转发到您的源站之前删除cookie,并在将响应返回给查看器之前从响应中删除Set-cookie标头


只是为了检查:您是在检查响应头而没有看到设置的cookie,还是在检查下一个请求并查看您是否仍然未经身份验证?@TamásSallai。正确。我正在检查来自CloudFront的响应,但它没有设置的cookie头。如果来自EB实例,则相同请求的响应没有设置cookie头iThanks@TamásSallai中的Set Cookie头,我在缓存行为中没有看到这些选项。(我看过此文档)您可能需要选择旧缓存设置才能看到它。我找到了它@TamásSallai。我必须在行为下编辑缓存策略,并添加了一个自定义策略,到目前为止似乎可以使用