- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我试图让用户使用 Facebook 和 Amazon Cognito 注册我的应用程序。我发现以前的文档说要使用:
let token = FBSDKAccessToken.currentAccessToken().tokenString
var logins: NSDictionary = NSDictionary(dictionary: ["graph.facebook.com" : token])
credentialsProvider.logins = [AWSIdentityProviderFacebook: token]
但我收到的消息表明登录已被弃用,并使用 AWSIdentityProviderManager 协议(protocol)向凭证提供商提供登录,我不知道该怎么做。我试图让我的类实现 AWSIdentityProviderManager 并创建一个登录方法,因为我注意到 credentialsProvider 有一个方法“setIdentiyProviderManagerOnce(self)”,但我不知道在实现的 logins() 方法中该做什么来将 facebook token 连接到凭证经理。
我看过亚马逊的 github 示例,但我觉得它们似乎没什么帮助
最佳答案
环顾四周后,我终于发现我不是唯一遇到此问题的人。 AWS 在不更改主要文档的情况下更新了他们的 sdk。解决方案是在自定义类中实现 AWSCognitoIdentityProviderManager 并将其提供给凭证提供程序。这是 simaomi 在下面的 github 讨论中提供的代码(它更像是一个快速修复):
import Foundation
import AWSCore
import AWSCognito
import AWSCognitoIdentityProvider
class CustomIdentityProvider: NSObject, AWSCognitoIdentityProviderManager{
var tokens : [NSString : NSString]?
init(tokens: [NSString : NSString]) {
self.tokens = tokens
}
@objc func logins() -> AWSTask {
return AWSTask(result: tokens)
}
}
let customProviderManager = CustomIdentityProvider(tokens: logins!)
self.credentialsProvider = AWSCognitoCredentialsProvider(
regionType: Constants.COGNITO_REGIONTYPE,
identityPoolId: Constants.COGNITO_IDENTITY_POOL_ID,
identityProviderManager: customProviderManager)
sdk 示例显示了您应该如何真正实现该解决方案
在这里查看讨论: https://github.com/aws/aws-sdk-ios/issues/357
这里是更新的 sdk 示例: https://github.com/awslabs/aws-sdk-ios-samples/tree/developer-authenticated-identities-2-4/CognitoSync-Sample
关于swift - AWS Cognito Swift 凭证提供商 "logins is deprecated: Use AWSIdentityProviderManager",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37597388/
我在前几天的测验中遇到了以下问题。 Consider the code fragment (assumed to be in a program in which all variables are
关闭。这个问题需要更多focused .它目前不接受答案。 想改进这个问题吗? 更新问题,使其只关注一个问题 editing this post . 关闭 9 年前。 Improve this qu
我刚开始接触 Objective-C,一般来说是 C,所以我想这也是一个 C 问题。它更像是一个为什么的问题,而不是一个如何做的问题问题。 我注意到,在除以两个整数时,小数部分向下舍入为 0,即使结果
我是一名优秀的程序员,十分优秀!