问题:我在 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("无法让最终用户登录")