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」) 和瞧!中添加此參數。 –