Amazon CognitoでiOSのFacebookとTwitterでユーザーを認証しようとしていました。 公式文書が古いため実装できません。[iOS] [AWS Cognito] 'logins'は非推奨:「AWSIdentityProviderManager」を使用
は、ここに私のコードです:
NSString *token = [FBSDKAccessToken currentAccessToken].tokenString;
credentialsProvider = [[AWSCognitoCredentialsProvider alloc] initWithRegionType:AWSRegionAPNortheast1 identityPoolId:IDENTITY_POOL_ID];
AWSServiceConfiguration *configuration = [[AWSServiceConfiguration alloc] initWithRegion:AWSRegionAPNortheast1
credentialsProvider:credentialsProvider];
credentialsProvider.logins = @{ AWSIdentityProviderFacebook: token };
NSLog(@"credentialsProvider.logins : %@", credentialsProvider.logins);
[AWSServiceManager defaultServiceManager].defaultServiceConfiguration = configuration;
しかし、Xcodeは‘logins’ is deprecated: Use “AWSIdentityProviderManager” to provide a valid logins dictionary to the credentials provider
私はログインが推奨されませんようcredentialsProvider.loginsは[ヌル]を返すことを考え出したと述べています。
Amazonの公式ドキュメント&サンプルが最新でないため、ユーザーを認証するために正しく実装する方法がわかりません。
最後に、私はSwiftでこれに対する解決策を見つけましたが、わかりません。
AWS Cognito Swift credentials provider "logins is deprecated: Use AWSIdentityProviderManager"
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)
あなたはObjective-Cのにこれらのコードを変換し、どのように私の上記のコードに変換されたコードを使用する方法を教えてもらえますか? または公式推奨コードを教えてください。
こんにちは、同じ問題があるので、実装ファイルを私に提供してください。私はCredentials Providerにログインすることができました。私はトークンを取り戻しました - だから、トークンをアップしてamazonコグニートにログインする必要がありますが、失敗しました。 –