0

大量のドキュメントを読み、多くの試行錯誤を繰り返した結果、aws モバイル ハブ アプリケーションで開発者認証用のラムダ (API ゲートウェイ) 駆動型バックエンドを実際に作成することができました。

  • AWSCognitoCredentialsProviderHelper をサブクラス化して、開発者 ID プロバイダーを作成しました
  • 実装: カスタム クラスの 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

次に、credentialProvider.credentials() を実行して、バックエンドから返された token/identityId の認証済み資格情報を取得します。これはすべて機能しているようで、AccessKey、SessionKey などが返されます。したがって、正常に機能しているようです。

ただし、continue ブロックで、AWSDynamoDB または syncdata を呼び出そうとすると、次のようになります。

Unauthenticated access is not supported for this identity pool.

モバイル ハブ アプリ内の AWS サービスが更新された認証情報を確実に受信できるようにするには、何が不足している可能性がありますか? また、AWSIdentityManager をこれに含めるにはどうすればよいですか? AWSIdentityManager.defaultIdentityManger がカスタム ID プロバイダーから userName などを取得しないように見えるためです。どんな助けでも本当に感謝します。

4

2 に答える 2

0

また、Mobile Hub Helper を複数のサインインのバリエーションと統合するのにも苦労しました。これには、Cognito ユーザー プールが含まれます。

簡単に言えば、MobileHubHelper ID マネージャーは現在、Facebook と Google のログイン メカニズムに制限されています。

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

これを使用しないようにするか、Git Hub からソースをダウンロードして変更する必要があります。

于 2016-08-20T00:40:45.340 に答える