2016-08-05 3 views
0

私はFacebook認証情報を使用してAWSにログインしようとしています。 Amazon CognitoのソーシャルアイデンティティプロバイダとしてFacebookを使用してフェデレーションIDを設定しましたが、何らかの理由で認証されません。 AmazonのDocsは最新ではないので、私は何をすべきか分からない。以下はiSight 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"のようなエラーが表示される "トークンはこのIDプールのサポートされているプロバイダからではありません。" AWCognitoCredentialsProviderに渡すプールIDとリージョンはAmazon Cognitoのものと一致し、MyProviderで定義したメソッドが呼び出されます。もし誰かがそれを働かせたら、それが働いていることを分かち合ってください。私は助言と助けを感謝します!

答えて

0

何とか私の問題を解決しました。私がしたのは私のアイデンティティプールとFacebookアプリを削除して新しいものを作成したことだけでした。今は正常に動作しています。

0

あなたのログインマップのキーは、graph.facebook.comである必要があります。 AWSIdentityProviderFacebookの代わりにAWSCognitoLoginProviderKey.Facebook.rawValueを使用してください。

+1

AWSCognitoLoginProviderKey.Facebook.rawValueは非推奨です – plot

+0

こんにちは、AWS経由でFacebookのログインを実装しましたか?私はこれを実装するために苦労して、私はこれを行うのを手伝ってください。 – vijay

+0

Cognitoを使用するために必要なコードとセットアップの量は驚くほどです。私はFirebaseがよりスマートで迅速に統合することが容易であることを発見しました。 – Annjawn