1

我应该如何配置 defaultServiceConfiguration,如果...

  • 我正在使用自定义身份提供者通过 Cognito 对注册用户进行身份验证。(在用户使用用户/密码注册到我们的服务之前,我不在乎是谁)
  • 我想使用移动分析随时在应用程序中跟踪事件。(即使对于未注册的用户)

目前验证的代码看起来像这样并且延迟执行,仅当使用为注册用户保留的功能时:

CustomIdentityProvider *customIdentityProvider = [[CustomIdentityProvider alloc] initWithIdProvider:idProvider
                                                                                          accountId:_accountId
                                                                                     identityPoolId:_identityPoolId
                                                                                            idToken:idToken];
customIdentityProvider.logins = @{idProvider.name:idToken};

AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1
                                                                                              identityProvider:customIdentityProvider
                                                                                                 unauthRoleArn:nil
                                                                                                   authRoleArn:nil];
AWSServiceConfiguration *configuration = [AWSServiceConfiguration configurationWithRegion:AWSRegionUSEast1
                                                                      credentialsProvider:credentialsProvider];

[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;

AWSTask * getIdentityIdTask = [credentialsProvider getIdentityId];

为了在应用程序中随时使用 Mobile Analytics,我是否必须在启动时设置 defaultServiceConfiguration?但在那种情况下,我还没有登录名。我应该如何在没有登录的情况下对用户进行身份验证?

谢谢。

4

1 回答 1

1

Cognito 有一个经过身份验证和未经身份验证的身份的概念,当您提供一些登录信息时,经过身份验证,在您没有提供登录信息时,未经身份验证。这两种用户的访问权限由您为该池设置的角色定义。

听起来您希望能够在任何一种情况下都使用移动分析,这仅意味着您需要确保在您的池中拥有的两个角色都允许访问。默认 Cognito 策略授予 Mobile Analytics Put Events 权限 - 如果您修改了生成的角色,则可能值得确认这些角色存在。

考虑到这一点,您不一定需要登录才能为任何用户获取移动分析访问权限。对于您赋予经过身份验证的身份的任何额外权限,如果需要,您可以在稍后的代码中更新登录名。

这是否回答你的问题?

于 2015-11-19T07:26:55.780 回答