我们有一个设置,其中我们将CloudFront置于后端API(代理)的前面。
所有端点均成功完成。 POST请求没问题,但是GET请求没有。
-
呼叫代理:
POST https://proxy.api.com/add ::响应成功!
获取https://proxy.api.com/ping ::响应成功!
通过CloudFront致电:
POST https://abc.cloudfront.net/add ::响应成功!
获取https://abc.cloudfront.net/ping :: 401未经授权!
有什么主意吗?
答案 0 :(得分:0)
问题:
GET请求Cloudfront在将请求转发到源之前删除“授权”标头字段。 (请参阅文档)aws doc
GET和HEAD请求– CloudFront在将请求转发到您的来源之前删除Authorization标头字段。
OPTIONS请求–如果您将CloudFront配置为缓存对OPTIONS请求的响应,则CloudFront会将请求转发到您的来源之前删除Authorization标头字段。
DELETE,PATCH,POST和PUT请求– CloudFront不会在将请求转发到您的来源之前删除标头字段。
如何解决:
从UI控制台转到“缓存行为设置”和“编辑” 在“基于所选请求的缓存”下选择“白名单”,然后在“白名单标题”下添加“授权”
答案 1 :(得分:0)