0

多くのドキュメントや試行錯誤を経て、私は実際に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などを取得することはないからです。どんな助けでも本当に感謝します。

答えて

0

アイデンティティプールの認証されていないIDを許可するオプションを確認してみましたか?

P.S .:認証されていないIDとの間でユーザー機密データを保存することはお勧めできません。

+0

はい、認証されていないアクセスを許可するオプションを確認しました。私はそれから、IDアイデンティティの要求エラーに対してセッションが不一致になります。私は資格情報を取得することができますが、それは再びデフォルトのサービスでは利用できません...私はアプリを通じて新鮮な資格情報をどのように伝達するのか分かりませんか? – xaksis

+0

このエラーは、キャッシュされたアイデンティティIDに問題がある可能性があることを示しています。アイデンティティIDがキャッシュされているものより長い時間キャッシュしていないことを確認してください。 これは、identityId Xでの操作を実行しようとしていますが、identityId Yからの資格情報を使用して操作しようとしていることを意味します。 –

0

私はMobile Hub HelperとCognito User Poolsを含む複数の種類のサインインを統合することも苦労しています。

簡単な答えは、MobileHubHelper IDマネージャーが現在FacebookとGoogleログインの仕組みに制限されていることです。

これに加えて、別のIDプロバイダでプロジェクトを構成しようとする試みもすべて破棄されます。

これを使用しないでください、またはGit Hubからソースをダウンロードして変更する必要があります。