在 ios 中使用 amazon cognito 调用 GetID
Calling GetID with amazon cognito in ios
我正在关注来自亚马逊的博客 post:https://mobile.awsblog.com/post/Tx2UQN4KWI6GDJL/Understanding-Amazon-Cognito-Authentication
我有这个设置:
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"IdentityPool"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
在iOS中如何调用GetID?
您必须 getId
然后刷新凭据。首先做:
Obj-C:
// Retrieve your Amazon Cognito ID
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
}
else {
// the task result will contain the identity id
NSString *cognitoId = task.result;
}
return nil;
}];
Swift:
// Retrieve your Amazon Cognito ID
credentialsProvider.getIdentityId().continueWithBlock { (task: AWSTask!) -> AnyObject! in
if (task.error != nil) {
print("Error: " + task.error.localizedDescription)
}
else {
// the task result will contain the identity id
let cognitoId = task.result
}
return nil
}
然后刷新:
- (BFTask *)getIdentityId {
if (self.identityId) {
return [BFTask taskWithResult:self.identityid];
} else {
return [[BFTask taskWithResult:nil] continueWithBlock:^id(BFTask *task) {
if (!self.identityId) {
return [self refresh];
}
return [BFTask taskWithResult:self.identityid];
}];
}
}
- (BFTask *)refresh {
return [[BFTask taskWithResult:nil] continueWithBlock:^id(BFTask *task) {
// make a call to your backend, passing logins on provider
MyLoginResult *result = [MyLogin login:user password:password withLogins:self.logins];
// results should contain identityid and token, set them on the provider
self.token = result.token;
self.identityId = result.identityId;
// not required, but returning the identityId is useful
return [BFTask taskWithResult:self.identityid];
}];
}
来自文档 HERE
我正在关注来自亚马逊的博客 post:https://mobile.awsblog.com/post/Tx2UQN4KWI6GDJL/Understanding-Amazon-Cognito-Authentication
我有这个设置:
AWSCognitoCredentialsProvider *credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionUSEast1 identityPoolId:@"IdentityPool"];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionUSEast1 credentialsProvider:credentialsProvider];
AWSServiceManager.defaultServiceManager.defaultServiceConfiguration = configuration;
在iOS中如何调用GetID?
您必须 getId
然后刷新凭据。首先做:
Obj-C:
// Retrieve your Amazon Cognito ID
[[credentialsProvider getIdentityId] continueWithBlock:^id(AWSTask *task) {
if (task.error) {
NSLog(@"Error: %@", task.error);
}
else {
// the task result will contain the identity id
NSString *cognitoId = task.result;
}
return nil;
}];
Swift:
// Retrieve your Amazon Cognito ID
credentialsProvider.getIdentityId().continueWithBlock { (task: AWSTask!) -> AnyObject! in
if (task.error != nil) {
print("Error: " + task.error.localizedDescription)
}
else {
// the task result will contain the identity id
let cognitoId = task.result
}
return nil
}
然后刷新:
- (BFTask *)getIdentityId {
if (self.identityId) {
return [BFTask taskWithResult:self.identityid];
} else {
return [[BFTask taskWithResult:nil] continueWithBlock:^id(BFTask *task) {
if (!self.identityId) {
return [self refresh];
}
return [BFTask taskWithResult:self.identityid];
}];
}
}
- (BFTask *)refresh {
return [[BFTask taskWithResult:nil] continueWithBlock:^id(BFTask *task) {
// make a call to your backend, passing logins on provider
MyLoginResult *result = [MyLogin login:user password:password withLogins:self.logins];
// results should contain identityid and token, set them on the provider
self.token = result.token;
self.identityId = result.identityId;
// not required, but returning the identityId is useful
return [BFTask taskWithResult:self.identityid];
}];
}
来自文档 HERE