1

问题:我在 Cognito 中有两个用户池。让我们称它们为池 A 和 B。我能够成功地对“池 A”的用户进行身份验证。

我需要从客户端动态验证后端创建的用户到“池 B”。

我读过的文档:* Amazon Amplify * Amazon Cognito * 适用于 iOS 的 Amazon SDK * AWSMobileClient

我的设置:* AWSMobileClient v2.9.8

我尝试了以下解决方案:

  • awsconfiguration.json 包含有关“池 A”的信息
  • 我将用户登录到“池 A”并执行业务逻辑(成功)
  • 我全局注销用户并使令牌无效。(成功)
  • 我从代码中为“池 B”设置了配置,我不确定如何在 awsconfiguration.json 中指定多个用户池。不确定是否可行。
  • 我登录由“池 B”中存在的后端创建的用户。(失败并显示错误消息“无法登录用户”)

AWSMobileClient.sharedInstance().signIn( username: "user_present_in_pool_a", password: "password" ) { 结果,错误

        debugPrint(result, error)

        // Async sign out

        AWSMobileClient.sharedInstance().signOut(
            options: .init(
                signOutGlobally: true,
                invalidateTokens: true
            ),
            completionHandler: { error in

            debugPrint(error)

            // setup configuration for "Pool B"
            let serviceConfig = AWSServiceConfiguration(
                region: .USWest2,
                credentialsProvider: nil
            )

            let poolConfig = AWSCognitoIdentityUserPoolConfiguration(
                clientId: "pool_b_client_id", clientSecret: nil, poolId: "pool_b_id"
            )

            // init pool client
            AWSCognitoIdentityUserPool.register(
                with: serviceConfig,
                userPoolConfiguration: poolConfig,
                forKey: "some_key"
            )

            AWSMobileClient.sharedInstance().signIn(
                username: "user_present_in_pool_b",
                password: "password"
            ) { result, error in
                debugPrint(result, error)
            }
        })
    }

AWSMobileClient.Error("无法让最终用户登录")

4

0 回答 0