我想使用Facebook凭据登录到AWS。我已经使用Facebook作为我在Amazon Cognito上的社交身份提供商建立了联邦身份标识,但由于某种原因,它未进行身份验证。亚马逊的文档不是最新的,所以我不知道该怎么做。ios swift AWS认证和Facebook身份验证
下面是从iOS应用一些SWIFT代码:
let token = FBSDKAccessToken.currentAccessToken().tokenString
let provider = MyProvider(tokens: [AWSIdentityProviderFacebook: token])
let credentialsProvider = AWSCognitoCredentialsProvider(regionType: region, identityPoolId: poolId, identityProviderManager: provider)
let configuration = AWSServiceConfiguration(region: region, credentialsProvider:credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
let id = credentialsProvider.getIdentityId()
这里是MYPROVIDER类:
import Foundation
import AWSCognitoIdentityProvider
class MyProvider:NSObject, AWSIdentityProviderManager{
var tokens : [NSString : NSString]?
init(tokens: [NSString : NSString])
{
self.tokens = tokens
}
@objc func logins() -> AWSTask {
return AWSTask(result: tokens)
}
}
我能够从Facebook和登录获取令牌,但是当我通过这令牌给Cognito我得到一个错误,如“NotAuthorizedException”“令牌不是来自此身份池的受支持提供者。”我将传递给AWCognitoCredentialsProvider的池ID和区域与Amazon Cognito中的相匹配,我在MyProvider中定义的方法被调用。如果任何人有它的工作,请分享你所做的工作。我会感谢任何意见和帮助!
AWSCognitoLoginProviderKey.Facebook.rawValue已弃用 – plot
嗨,您是否已通过AWS实施Facebook登录。我努力实现这一点,请帮助我做到这一点。 – vijay
使用Cognito所需的大量代码和设置令人兴奋。我发现Firebase要更快更聪明,更容易整合。 – Annjawn