首页 > 解决方案 > 无法使用 Cognito 颁发的访问令牌连接 API Gateway

问题描述

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

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

在后续调用中使用 idToken 作为 Authorization 标头成功地为我提供了来自 API 网关集成方法的数据,而如果我使用 accessToken 我收到 401-Unauthorized 并且响应标头说: x-amzn-errortype: UnauthorizedException

访问令牌不能用于上述目的吗?我可以很好地使用 idToken,除了在 idToken 失效方面存在已知问题,即使在此处cognito.user.signOut解释之后或什globalSignOut至如此解释。

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

标签: amazon-web-servicesamazon-cognitoaccess-tokenaws-userpools

解决方案


如果您正在验证任何自定义范围,则可以针对 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-访问令牌


推荐阅读