私はFacebook経由でログインするためにMobileHubを通じてiOSアプリと統合されたAWS Cognitoを使用しています。 既存のIDをログアウトして別のFBアカウントでログインしようとするまでは、すべて正常に動作します。私はこのエラーを取得する。この場合
、私はどのAWSラムダ呼び出すたび:AWS Cognito iOS。ログアウト後の認証されていないエラー
AWSiOSSDKのv2.4.9 [エラー] AWSCredentialsProvider.mライン:577。
[AWSCognitoCredentialsProvider資格情報]。
更新できません。エラーは[エラードメイン= com.amazonaws.AWSCognitoIdentityErrorDomainコード= 8 "(ヌル)" のUserInfo = {__タイプ= NotAuthorizedException、メッセージ=非認証アクセスが、このアイデンティティ・プールのためにサポートされていない。}]
しかし、私が終了した場合とアプリを再起動すると、すべて正常に動作します。
このエラーがhere発信:
私が見るAWS SDKコードを読み取ることから、cognitoのアイデンティティは資格プロバイダhereからのログインを取得していないので、それが起こること:
私は「ので、私は、これが期待されていると思いますveはログアウトしました。しかし、問題はFBにログインした後でさえ、AWSはまだ私をUnauthorizedとみなすことです。 StackOverflowに関する同様の質問から、過去の人々はAWSCognitoCredentialsProviderでログイン辞書を手動で設定していたことがわかります。しかし、今ではこのプロパティは推奨されず、他の同様のプロパティは読み込み専用です。
はここAppDelegate didFinishLaunchingWithOptions方法で私のAWSのセットアップです:
let cred = AWSCognitoCredentialsProvider(regionType: .euWest1, identityPoolId: "POOLID")
let config = AWSServiceConfiguration(region: .euWest1, credentialsProvider: cred)
AWSServiceManager.default().defaultServiceConfiguration = config
if let config = config {
config.timeoutIntervalForRequest = 30
config.timeoutIntervalForResource = 30
config.maxRetryCount = 3
AWSLambdaInvoker.register(with: config, forKey: "key")
}
let mapperConfiguration = AWSDynamoDBObjectMapperConfiguration()
mapperConfiguration.saveBehavior = .updateSkipNullAttributes
AWSDynamoDBObjectMapper.register(with: config!, objectMapperConfiguration: mapperConfiguration, forKey: "updateObjectMapper")
そしてここでログアウトコードです:私は両方のクリアキーチェーンを試してみましたが、それをやっていないことを、
AWSIdentityManager.defaultIdentityManager().logout { (result, error) in
if let cp = AWSServiceManager.default().defaultServiceConfiguration.credentialsProvider as? AWSCognitoCredentialsProvider {
cp.clearKeychain()
}
// Open login screen
}
は注意してください。結果は同じです。
本当に助けていただきありがとうございます。
よろしくお願いいたします。 アレックス
ログアウトしているのと同じAWSIdentityManagerを使用していますが、あなたのような問題があります。それは を表示します。 '' 'UserInfo = {__ type = NotAuthorizedException、message =このアイデンティティプールでは認証されていないアクセスはサポートされていません}' '' まだログアウトできません。 すべてのソリューション? –
このサービスにはどのようなサービスがありますか?いくつかのAWSLambda?またはAWSIdentityManager自体? –
AWSIdentityManager。そして、それは魅力のようなカスタムログインを扱いますが、私は '[[AWSIdentityManager defaultIdentityManager] logoutWithCompletionHandler:^(ID result、NSError * error) 'を使用してログアウトします。 上記のエラーが表示されます。ログアウトが検出された後に別のジョブを実行する必要があります。エラーはありません。上記のハンドラでユーザがログアウトしたことを検出すると、代わりに '[[AWSIdentityManager defaultIdentityManager] isLoggedin]'を使って別のジョブを実行します。 –