在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事物。
答案 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