AWS Mobile Analytics с использованием аутентификации Cognito Developer
Как мне настроить 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? Но в этом случае у меня еще нет логинов. Как мне аутентифицировать пользователя без логина?
Благодарю.
1 ответ
Cognito имеет концепцию аутентифицированных и неаутентифицированных идентификаторов, аутентифицирующихся, когда вы предоставили логин, и неаутентифицированных, когда вы этого не сделали. Права доступа этих двух типов пользователей определяются ролями, которые вы устанавливаете для этого пула.
Похоже, вы хотите иметь возможность использовать Mobile Analytics в любом случае, а это значит, что вам нужно убедиться, что доступ разрешен в обеих ролях, которые у вас есть для вашего пула. Политики Cognito по умолчанию дают права Mobile Analytics Put Events. Если вы изменили созданные роли, возможно, стоит подтвердить, что они есть.
Имея это в виду, вам не обязательно входить в систему, чтобы получить доступ к Mobile Analytics для любого пользователя. Для любых дополнительных прав, которые вы даете аутентифицированным удостоверениям, вы можете обновить логины на более позднем этапе кода, если это будет необходимо.
Это отвечает на ваш вопрос?