需要帮助了解AWS Amazon Cognito开发人员指南中有关开发人员提供的身份验证方法的代码示例

时间:2016-08-10 15:25:39

标签: amazon-web-services authentication identity amazon-cognito

this page from the Amazon Cognito Developer Guide中,有一个代码示例:

idRequest.setIdentityId("14232"); <--- this line here is the line of concern
# please use Control/Command+F to find this line

更清晰的上下文的更广泛的代码视图如下:

// Create a new request to retrieve the token for your end user
GetOpenIdTokenForDeveloperIdentityRequest idRequest =
  new GetOpenIdTokenForDeveloperIdentityRequest();
idRequest.setIdentityPoolId("YOUR_COGNITO_IDENTITY_POOL_ID");
idRequest.setIdentityId("14232");

我们准备在Amazon Cognito Client中首次建立新用户的身份。

现在,我想了解为什么我们在这里调用setIdentityId()而(在代码的这一点上)我们仍然没有为Cognito提供任何身份?我们应该 设置 IdentityId ?为什么"14232"在这里使用?

Amazon Cognito API的支持Xamarin SDK文档中,它说

  

如果要创建新标识,IdentityId应为null。如果要将新登录与现有的经过身份验证/未经身份验证的身份相关联,可以通过提供现有的IdentityId来实现。

我很困惑,如果文档说&#34; identityId应为null &#34;当我们尝试创建新标识时,为什么开发人员指南中的官方代码示例使用 14232 而不是 null

试图找出这个新的Cognito事物。

2 个答案:

答案 0 :(得分:1)

你是对的,当没有身份id时,应该传递null身份id。通常,当您获得身份标识时,您将其传递回客户端,客户端将传递相同的标识ID,您将使用该标识来填充GetOpenIdTokenForDeveloperIdentityRequest。

答案 1 :(得分:0)

从代码中,在我看来,你创建了一个带有身份ID的idRequest。如果要创建新标识,可以将其传递给null。将此与现有关联时,您需要传递现有identityId [在此代码中完成]的时间。作为响应,您将获得identityId返回,这将在最后一行代码中再次捕获,以验证请求是否成功。

以下是请求参数的详细说明 - http://docs.aws.amazon.com/cognitoidentity/latest/APIReference/API_GetOpenIdTokenForDeveloperIdentity.html