多くのドキュメントや試行錯誤を経て、私は実際にawsモバイルハブアプリケーションで開発者認証のためにラムダ(APIゲートウェイ)バックエンドを作成することができました。モバイルハブサンプルiosアプリケーション用のAWSデベロッパー認証
- 私は開発者のアイデンティティプロバイダを作成するAWSCognitoCredentialsProviderHelperをサブクラス化している
- 実装:カスタムクラスでgetIdentityId、トークンとログイン
インスタンス化:その後、
devIdentityProvider = DeveloperIdentityProvider(
regionType: AWSRegionType.USEast1,
identityPoolId: getIdentityPoolFromPlist()!,
useEnhancedFlow: true,
providerName: "login.myapp",
identityProviderManager: AWSIdentityManager.defaultIdentityManager())
let credentialsProvider = AWSCognitoCredentialsProvider(
regionType: AWSRegionType.USEast1,
unauthRoleArn: nil,
authRoleArn: nil,
identityProvider: devIdentityProvider!)
let configuration = AWSServiceConfiguration(
region: AWSRegionType.USEast1,
credentialsProvider: credentialsProvider)
AWSServiceManager.defaultServiceManager().defaultServiceConfiguration = configuration
私はcredentialsProviderを行います.credentials()を使用して、バックエンドから返されたトークン/ identityIdの認証済みの認証情報を取得します。これはすべて動作しているようだし、AccessKey、SessionKeyなどを返すので、うまくいくようです。 continueブロックで
私はAWSDynamoDBまたはsyncdataを呼び出そうけれども、私が手:
Unauthenticated access is not supported for this identity pool.
私はモバイルハブアプリでAWSサービスは、更新された資格情報を受け取ることを確認するために存在しない可能性がありますどのような?また、AWSIdentityManagerをこれにどのように関与させるのですか?なぜなら、AWSIdentityManager.defaultIdentityMangerは私のカスタムIDプロバイダからuserNameなどを取得することはないからです。どんな助けでも本当に感謝します。
はい、認証されていないアクセスを許可するオプションを確認しました。私はそれから、IDアイデンティティの要求エラーに対してセッションが不一致になります。私は資格情報を取得することができますが、それは再びデフォルトのサービスでは利用できません...私はアプリを通じて新鮮な資格情報をどのように伝達するのか分かりませんか? – xaksis
このエラーは、キャッシュされたアイデンティティIDに問題がある可能性があることを示しています。アイデンティティIDがキャッシュされているものより長い時間キャッシュしていないことを確認してください。 これは、identityId Xでの操作を実行しようとしていますが、identityId Yからの資格情報を使用して操作しようとしていることを意味します。 –