在我的 Android 项目中,我使用 AWS SDK 注册用户,这要归功于 Cognito 并在 API Gateway 中调用 API。在我的 Cognito 用户池中,我创建了一个用户池组。该组的目的是只允许该组中的用户调用特定的 API。
为了使其工作,我尝试遵循本教程(尤其是视频)。因此,我创建了一个 Cognito 授权方,将其添加到 API Gateway 中的方法请求中,并尝试使用 AWS 开发工具包从我的应用程序调用 API:
@Service(endpoint = "https://abcdefghig.execute-api.eu-central-1.amazonaws.com/staging")
public interface AwsdemoapiClient
{
@Operation(path = "/test-api", method = "GET")
Empty testApiGet();
}
问题是:无论用户是否经过身份验证,以及是否在组中,当我testApiGet()
在我的应用程序中调用时,我总是会收到以下错误:401 Unauthorized
,即使我在我的 IAM 角色中拥有正确的授权。经过一番研究,似乎缺少 id 令牌,这可能是我收到该错误的原因。
但它不应该由适用于 Android 的 AWS 开发工具包自动管理吗?我该如何解决?
谢谢你的帮助。