Neb*_*ula 8 objective-c amazon-web-services ios amazon-cognito
我正在尝试使用Cognito和开发人员验证身份来验证我的用户.我的问题是如何使用objective-c将identityId设置为从iOS开发人员后端返回的正确的?
如果我在代码中手动拨打电话或使用邮递员,我的服务器会返回正确的ID,并且Cognito会识别它并正确交换令牌.
iOS框架似乎是自我分配一个不正确的identityId.我真的很难理解文档,因为它已经过时且含糊不清.
这是我的代码如下:
NSLog(@"Complete login");
NSMutableDictionary *merge = [NSMutableDictionary dictionaryWithDictionary:self.credentialsProvider.logins];
[merge addEntriesFromDictionary:logins];
self.credentialsProvider.logins = merge;
// Force a refresh of credentials to see if we need to merge
task = [self.credentialsProvider refresh];
NSLog(@"Complete login 2-- %@", self.credentialsProvider.identityId); //The identityId assigned is incorrect...
NSLog(@"Complete login 2-- %@", self.credentialsProvider.identityPoolId); //The identityPoolId is correct
Run Code Online (Sandbox Code Playgroud)
下面的一些清晰度:这是它到目前为止的工作方式:1 - 当应用程序运行时,它会自动从amazon分配一个随机的identityId(因此用户最初是未经身份验证的).2 - 用户输入他们的凭证然后我的代码向我的后端发出URL请求,该请求返回有效的令牌以及用户名和密码的正确identityId.3 - 现在需要在代码中初始化这个新的identityId以覆盖旧的未经身份验证的identityId.4 - 新idendityId和令牌从我的服务器返回需要发送给Cognito进行最后的验证和Cognito返回更多的认证.当我手动说我通过邮递员发送请求.
简而言之:1:如何更改/设置我的identityId?2:如何将从我的后端收到的更新凭证发送到Cognito?
AWSCognitoCredentialsProvider 实例中的 IdentityId 字段具有只读属性,因此一旦初始化就无法更改。设置它的唯一方法是在其初始化中。
id<AWSCognitoCredentialsProvider> credentialsProvider =
[[AWSCognitoCredentialsProvider alloc]
initWithRegionType:<Region>
identityProvider:identityProvider
unauthRoleArn:nil
authRoleArn:nil];
Run Code Online (Sandbox Code Playgroud)
用户通过身份验证后,请确保更新登录映射,如下所示:
credentialsProvider.logins = @{DeveloperProviderName: userIdentifier}
[credentialsProvider refresh];
Run Code Online (Sandbox Code Playgroud)
来源: http: //docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html
ps:确保正确实现身份提供者,并在刷新方法中设置identityId
- (AWSTask *)refresh {
/*
* Get the identityId and token by making a call to your backend
*/
// Call to your backend
// Set the identity id and token
self.identityId = response.identityId;
self.token = response.token;
return [AWSTask taskWithResult:self.identityId];
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
528 次 |
最近记录: |