我花了一天时间试图让Cognito在我的服务器上工作.我找不到任何有用的文档,因为没有明确的例子来设置它.
我的服务器上有以下代码:
BasicAWSCredentials credentials = new BasicAWSCredentials( "A**************", "+y*****************************"); AmazonCognitoIdentityClient client = new AmazonCognitoIdentityClient(credentials); GetOpenIdTokenForDeveloperIdentityRequest tokenRequest = new GetOpenIdTokenForDeveloperIdentityRequest(); tokenRequest.setIdentityPoolId("eu-west-1:be9d19a5-*******************"); HashMapmap = new HashMap (); //Key -> Developer Provider Name used when creating the identity pool //Value -> Unique identifier of the user in your backend map.put("access.com.cbn.postref", "fred"); //Duration of the generated OpenID Connect Token tokenRequest.setLogins(map); tokenRequest.setTokenDuration(1000l); GetOpenIdTokenForDeveloperIdentityResult result = client .getOpenIdTokenForDeveloperIdentity(tokenRequest); String identityId = result.getIdentityId(); String token = result.getToken(); System.out.println("id = " + identityId + " token = " + token);
我创建了一个IAM用户,并在上面的代码中使用了公钥和私钥.我用Dev在Cognito上创建了一个IndentityPool.验证.代码中给出的ID:access.com.cbn.postref.
当我运行此代码时,我得到一个例外:
com.amazonaws.services.cognitoidentity.model.ResourceNotFoundException:IdentityPool'eu-west-1:be9d19a5 - ***********************'找不到.(服务:AmazonCognitoIdentity;状态代码:400
生成于
GetOpenIdTokenForDeveloperIdentityResult result = client .getOpenIdTokenForDeveloperIdentity(tokenRequest);
我完全失去知道如何继续,因为我看不出我做错了什么.我确实尝试获取IdentityPools列表但返回0大小的列表.
访问eu-west-1区域中的标识池时,必须明确设置客户端的区域以使用该区域:
client.setRegion(Region.getRegion(Regions.EU_WEST_1));
我们目前正在开发一个示例开发人员身份验证身份后端以及iOS/Android应用程序,我们希望尽快发布.