无法使用 Cognito-issued 访问令牌连接 API 网关

Unable to connect with API Gateway using Cognito-issued access tokens

文档 here 说,您可以使用访问令牌或 cognito 颁发的 idToken 连接 AWS API 网关。

我正在为我的 Angular 项目之一使用 amazon-cognito-identity-js。登录后,我会收到三个令牌。 sdk存储到本地的accessToken、idToken、refreshToken。

在后续调用中使用 idToken 作为授权 header 成功地为我提供了来自 API 网关集成方法的数据,而如果我使用 accessToken,我会收到 401-Unauthorised 和响应 header 说: x-amzn-errortype: UnauthorizedException

访问令牌是否可以不用于上述目的。我可以使用 idToken,除了在 cognito.user.signOut 甚至 globalSignOut 之后也存在使 idToken 无效的已知问题,如 here.

所述

有人可以建议为什么访问令牌可能不起作用。

如果您正在验证任何自定义范围,则可以针对 API 端点使用访问令牌。换句话说,如果您没有为您的应用程序客户端定义任何自定义范围,您将使用 id 令牌来调用 API 端点。否则,您可以使用访问令牌来验证任何自定义范围。

希望这对您有所帮助。

参考:

https://docs.aws.amazon.com/cognito/latest/developerguide/amazon-cognito-user-pools-using-tokens-with-identity-providers.html#amazon-cognito-user-pools-using-the-access-token