尝试通过 Websocket 连接到 AWS IoT 时,我不断收到 403。我有一个 Cognito 联合池设置,它可以很好地连接并返回凭据。在那一步之后,当我更新 websocket 凭证时,我开始收到 403。
我已经完成了以下步骤:
- 我已经设置了 IoT 并设置了证书和策略。
- 我创建了一个允许未经身份验证的用户使用的 Cognito 联合身份池。
- 未经身份验证的 Angular 色可以完全访问 IoT(政策如下)
这是未经身份验证的 Angular 色策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"mobileanalytics:PutEvents",
"cognito-sync:*",
"iot:*"
],
"Resource": [
"*"
]
}
]
}
有什么想法吗?我错过了一步吗?
最佳答案
我知道这有点老了,但我们今天遇到了同样的问题,但它似乎只发生在一家公司的用户身上。因此,经过一番挖掘,我发现他们的计算机时间关闭了大约 8 分钟。这导致证书过期或无效。只需将计算机时间更改为正确的时间,或者我们确实从服务器和本地计算机获得了正确时间的差异,并在发送请求时解决了该差异。
关于javascript - AWS IoT websocket 连接返回 403,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43024822/