所以我有一个API(让他们称之为API编号1)和一个用户池。 API用于测试目的。它调用lambda函数来更新IOT阴影。现在我使用cognito创建了一个用户池并在其中添加了一些用户。然后,我使用相同的用户池为API编号1创建了一个授权程序,并在POST方法执行时为其启用了授权。我创建了一个登录表单,以便我可以登录到cognito用户池并从中获取ID令牌。我在POSTMAN中使用了这个id令牌以及Authorization标头,并且后期工作。当我没有提供id令牌时,我收到了消息:未经授权作为回复。只有在我提供了授权标头和id令牌时,IOT阴影才会更新,这意味着一切顺利。
然后出于测试目的,我创建了另一个API(API编号2),我完全复制了API编号1,创建了具有相同池的授权者,启用了授权,登录,获得了使用Authorization标头在POSTMAN中使用它的id令牌(同样的过程),它没有工作。我一直收到消息:未经授权。
然后我想也许问题是API编号2并创建了API编号3.这次我还创建了一个全新的用户池。我使用该用户池来创建授权程序。其余的,我再次完全复制了API编号1。我启用了CORS,在POST方法执行中我添加了Authorization。我做了一切。还是当我再次尝试使用POSTMAN时,它还没有工作。
因此,API编号1的功能仍然完全像它应该的那样。尽管与API 1具有完全相同的配置,但API 2和API 3不起作用。 我真的不知道我哪里出错了。我甚至尝试为每个API创建单独的lambda函数。甚至lambda代码也是相同的(除了IOT证书和IOT阴影URL)。
请帮助!!在这一点上,我想我已经尝试了几乎所有的东西,但我仍然不知道什么是错的。一个似乎使用与其他两个相同的配置,而其他两个不同。非常感谢。