我已经在我的AWS API网关中创建了一堆API资源 - 这些都可以正常工作。
我还将定义导出到某些用户文档和测试的Swaggerui。
我在所有呼叫上都启用了CORS,并且每个呼叫都按预期工作。
我刚刚意识到的问题是 - 通过Swagger/Postman,如果我调用某个端点(假设https://apiserver/api/helloword),则使用GET方法,它可以正常工作,然后我立即更改呼叫在帖子中,禁止使用403失败 - 如果我等待5-10分钟,那么该帖子将起作用,而获取将失败...几乎好像选项方法被缓存(不确定)。
我尝试在我的选项方法中添加一些标题(包括访问控制,高速公路,高速缓存,到期等),没有运气。
每个API调用都带有一个API键和一个Authtoken-对于第一个调用(如果使用相同的方法,则可以),直到我更改方法。
。通过API网关测试的工作做到这一点 - 尽管它们不使用选项(通过提琴手注意),一旦我使用Swagger UI或Postman来测试呼叫,此问题就会出现。
提琴手日志并没有真正的帮助,因为它显示了每个呼叫获取选项,然后将选项路由路由到get或post方法 - 数据都看起来不错。
有什么想法?
您是否正在使用自定义授权器?如果是这样,您应该尝试将其设置为0并再次测试。如果解决了问题,您将必须修复您从授权者生成的策略。
授权者的策略被缓存累积整个API 。因此,如果您还允许仅允许使用的方法退回策略(例如称为Get,然后您发送了允许Get方法的策略),那么当您调用邮政方法时,您将获得403.您应该构造客户令牌的授权法中的全球政策。然后,整个API的任何通话都具有相同的令牌