首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >被缓存的API网关获取和发布-可疑CORS问题

被缓存的API网关获取和发布-可疑CORS问题
EN

Stack Overflow用户
提问于 2016-12-08 04:47:30
回答 1查看 369关注 0票数 0

我在我的AWS网关中创建了一堆API资源--它们都运行得非常好。

我还将定义导出到SwaggerUI,用于一些用户文档和测试。

我对所有的呼叫都启用了CORS,并且每个呼叫都按预期工作。

我刚刚意识到的问题是--通过swagger / Postman,如果我用GET方法调用某个端点(比如https://apiserver/api/helloWord),它可以正常工作,然后我立即将调用更改为POST,如果我等待5-10分钟,那么POST就会工作,GET就会失败.就好像选项方法正在被缓存一样(不确定)。

我尝试在我的选项方法中添加一些头(包括访问控制-最大年龄、缓存-控制、到期等)。没有运气。

每个API调用都接受一个API键和一个Authtoken --这对于第一个调用(如果使用相同的方法,则每个其他调用)都很好,直到我更改方法为止。

通过API网关测试可以很好地完成这一任务--尽管它们不使用选项(通过Fiddler注意到),但一旦我使用Swagger或postman测试调用,就会出现这个问题。

Fiddler日志没有多大帮助,因为它显示了每个调用都获取选项,然后路由到GET或POST方法--这些数据看起来都很好。

有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-12-08 19:46:46

您在使用自定义授权程序吗?如果是这样,您应该尝试将缓存TTL设置为0,然后再进行测试。如果这解决了问题,则必须修复从授权程序生成的策略。

来自授权人的策略是缓存的,占用整个API。因此,如果您发送一个允许只允许调用的方法(例如GET被调用,并且您发送了一个允许GET方法的策略返回)的策略,那么当您调用POST方法时,您将得到403。您应该在授权程序中为客户端令牌构造一个全局策略。然后,在整个API中使用相同标记的任何调用都不必返回到Lambda函数,这样可以节省资金和延迟。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41031967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档