0
我在集成Cognito和ApiGateway时遇到了问题。 首先我用Cognito签署,没有问题,我得到所有的令牌。 然后我必须打电话给API网关。我正在使用Android自动生成的SDK。 我在这里的例子如下:http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-generate-sdk-android.html但我总是得到相同的错误。Android上的AWS Api Gateway和Cognito - 错误401
CognitoCachingCredentialsProvider credentialsProvider = new CognitoCachingCredentialsProvider(
context,
CognitoConstants.IDENTITY_POOL_ID,
CognitoConstants.REGION);
String token = cognitoUserSession.getIdToken().getJWTToken();
Map<String, String> logins = new HashMap<>();
logins.put(CognitoConstants.LOGIN_MAP_KEY, token);
credentialsProvider.setLogins(logins);
ApiClientFactory factory = new ApiClientFactory()
.credentialsProvider(credentialsProvider);
client = factory.build(ExampleAPIClient.class);
client.exampleApi1AccountsGet();
结果是:
ApiClientException com.amazonaws.mobileconnectors.apigateway.ApiClientException: {"message":"Unauthorized"}
(Service: BancarAPIClient; Status Code: 401; Error Code: null; Request ID: 3679cd4b-eefc-11e6-9d00-f99040a8ed67)
谢谢。您说得对,我正在为Cognito身份池设置凭据。 其实,我只需要用UserPool标记来设置heather,但我无法找到,因为生成的SDK不是很灵活。 原因是后端存在问题,并且未命中配置。在修复之后,生成的SDK在方法 (@Parameter( name =“Authorization”, location =“header”) 和瞧!中添加此参数。 –