【问题标题】:AWS Mobile Analytics using Cognito Developer Authentication使用 Cognito 开发人员身份验证的 AWS 移动分析
【发布时间】:2016-02-21 02:27:32
【问题描述】:

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

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

目前验证的代码是这样的,并且是惰性执行的,只有在使用为注册用户保留的功能时:

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? 但在那种情况下,我还没有登录名。我应该如何在没有登录的情况下对用户进行身份验证?

谢谢。

【问题讨论】:

  • 一个非常好的 swift tutorial available here 用于 AWSCognite 身份验证和文件上传。如果你可以通过引用swift代码来转换代码。
  • 谢谢,我的问题是特定于开发人员身份验证的,但无论如何都是很好的教程,它促使我充分使用 cognito :)

标签: ios amazon-web-services amazon-cognito amazon-mobile-analytics


【解决方案1】:

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

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

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

这能回答你的问题吗?

【讨论】:

  • 谢谢。我使用空登录名创建了一个自定义身份提供程序,在将我的提供程序添加到登录名并刷新凭据提供程序后,它似乎也可以工作。在知道未经身份验证意味着没有提供登录后,文档的“支持提供者之间的转换”部分对我来说变得有意义:docs.aws.amazon.com/cognito/devguide/identity/…
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-12-05
  • 2015-04-15
  • 2016-06-29
  • 1970-01-01
  • 1970-01-01
  • 2015-01-05
  • 2015-05-10
相关资源
最近更新 更多