我正在尝试通过使用createKeysAndCertificateFromCsr函数创建密钥和证书,并且结果来自块。
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPNortheast2
credentialsProvider:nil];
AWSIoTManager *awsIoTManager = [AWSIoTManager defaultIoTManager];
// CSR information dictionary
/*
commonName
countryName;
organizationName;
organizationalUnitName;
*/
NSString *commonName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleDisplayName"];
NSLocale *locale = [NSLocale currentLocale];
NSString *countryCode = [locale objectForKey: NSLocaleCountryCode];
NSLocale *usLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"en_US"];
NSString *countryName = [usLocale displayNameForKey: NSLocaleCountryCode value:countryCode];
NSString *organizationName = [[NSBundle mainBundle].bundleIdentifier componentsSeparatedByString:@"."][1];
NSString *organizationalUnitName = [[NSBundle mainBundle].bundleIdentifier componentsSeparatedByString:@"."][2];;
NSLog(@"commonName = %@ \
commonName = %@ \
organizationName = %@ \
organizationalUnitName = %@",commonName, countryName, organizationName, organizationalUnitName);
NSDictionary <NSString *, NSString *> * csrDictionary = @{@"commonName":commonName,
@"countryName":countryName,
@"organizationName":organizationName,
@"organizationalUnitName":organizationalUnitName};
// Create CSR
[awsIoTManager createKeysAndCertificateFromCsr:csrDictionary
callback:^(AWSIoTCreateCertificateResponse *mainResponse) {
当我检查块的参数。此错误消息为零。
错误域= com.amazonaws.AWSIoTErrorDomain代码= 0“缺少身份验证令牌” UserInfo = {NSLocalizedDescription =缺少身份验证令牌,NSLocalizedFailureReason = MissingAuthenticationTokenException}
给我一些建议。谢谢。
最佳答案
为此,您需要提供有效的AWSCredentialsProvider
。
在AWSStaticCredentialsProvider
中使用访问密钥和秘密密钥(不建议用于测试以外的其他用途),或者根据您的设置,使用其他可用提供程序之一,例如AWSWebIdentityCredentialsProvider
或AWSCognitoCredentialsProvider
。它们都在AWSIdentityProvider.h
文件中声明。