gpt4 book ai didi

swift - AWSCognito Facebook 登录 Swift

转载 作者:行者123 更新时间:2023-11-30 11:39:27 24 4
gpt4 key购买 nike

我正在尝试使用 AWSCognito 通过 Facebook 访问 token 登录。

我的身份池已设置并且我拥有 Facebook 访问 token 。

不幸的是,这方面的文档非常有限。有人成功让 Facebook 用户登录 AWSCognito 吗?

到目前为止我已经;

let provider: Dictionary = [AWSIdentityProviderFacebook : accessToken.authenticationToken]
let credentialProvider = AWSCognitoCredentialsProvider(regionType: .EUWest2, identityPoolId: POOL_IDENTITY_STRING)

我假设我需要在某个地方传递提供者。

我尝试这样做;

credentialProvider.identityProvider.logins() = provider

但我得到:“无法分配给值:函数调用返回不可变值”

最佳答案

是的,我最近做了类似的事情。

您将需要使用身份提供程序管理器来初始化您的凭据提供程序。

credentialsProvider = AWSCognitoCredentialsProvider(
regionType: xxx,
identityPoolId: yyy,
identityProviderManager: idpm)

但是,你不能只传入字典 ["graph.facebook.com" : <access token>]作为第三个参数。

您需要符合 AWSIdentityProviderManager 协议(protocol)的内容,该协议(protocol)基本上只返回一个返回字典的任务。

我最终为此制作了一个简单的包装类,请参见下文。

import AWSCognito
class myIdentityProvider: NSObject, AWSIdentityProviderManager {

var keytokens: [String:String]?

init (logins: [String:String]) {
keytokens = logins
}

func logins () -> AWSTask<NSDictionary> {

let task = AWSTask(result: keytokens as AnyObject?)
return task as! AWSTask<NSDictionary>
}

}

那么,你的代码将被重写:

let provider: Dictionary = [AWSIdentityProviderFacebook : accessToken.authenticationToken]
let idpm = myIdentityProvider(provider)
let credentialProvider = AWSCognitoCredentialsProvider(
regionType: .EUWest2,
identityPoolId: POOL_IDENTITY_STRING,
identityProviderManager: idpm)

关于swift - AWSCognito Facebook 登录 Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49411769/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com