ios – Amazon Cognito使用开发人员身份验证Obj C设置identityId

ios – Amazon Cognito使用开发人员身份验证Obj C设置identityId,第1张

概述我正在尝试使用Cognito和开发人员验证的身份验证我的用户.我的问题是如何使用 objective-c将identityId设置为从iOS开发人员后端返回的正确的? 如果我在代码中手动拨打电话或使用邮递员,我的服务器会返回正确的ID,并且Cognito会识别它并正确交换令牌. iOS框架似乎是自我分配一个不正确的identityId.我真的很难理解文档,因为它已经过时且含糊不清. 这是我的代码如 我正在尝试使用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

下面的一些清晰度:
到目前为止它是如何工作的:
1 – 当应用程序运行时,它会自动从amazon分配一个随机的IDentityID(因此用户最初是未经身份验证的).
2 – 用户输入他们的凭证然后我的代码向我的后端发出URL请求,该请求返回有效的令牌以及用户名和密码的正确IDentityID.
3 – 现在需要在代码中初始化这个新的IDentityID以覆盖旧的未经身份验证的IDentityID.
4 – 从我的服务器返回的新IDendityID和令牌需要发送到Cognito进行最终身份验证,Cognito会返回更多身份验证.当我手动说我通过邮递员发送请求.

简而言之:
1:如何更改/设置我的IDentityID?
2:如何将从我的后端收到的更新凭证发送到Cognito?

解决方法 AWSCognitoCredentialsProvIDer实例中的IDentityID字段具有Readonly属性,因此一旦初始化就无法更改.设置它的唯一方法是初始化.
ID<AWSCognitoCredentialsProvIDer> credentialsProvIDer =   [[AWSCognitoCredentialsProvIDer alloc]        initWithRegionType:<Region>          IDentityProvIDer:IDentityProvIDer             unauthRoleArn:nil               authRoleArn:nil];

用户通过身份验证后,请确保更新登录映射,如下所示:

credentialsProvIDer.logins = @{DeveloperProvIDername: userIDentifIEr}[credentialsProvIDer refresh];

来源:http://docs.aws.amazon.com/cognito/latest/developerguide/developer-authenticated-identities.html

p.s.:确保正确实现身份提供程序,并在refresh方法中设置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];}
总结

以上是内存溢出为你收集整理的ios – Amazon Cognito使用开发人员身份验证Obj C设置identityId全部内容,希望文章能够帮你解决ios – Amazon Cognito使用开发人员身份验证Obj C设置identityId所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1104664.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存