无法使用 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 端点。否则,您可以使用访问令牌来验证任何自定义范围。
希望这对您有所帮助。
参考:
文档 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 端点。否则,您可以使用访问令牌来验证任何自定义范围。
希望这对您有所帮助。
参考: