使用联合身份的 Cognito 身份验证不会在池中创建用户

Cognito authentication using federated identity does not create a user in the pool

我使用带有用户池的 Cognito 来为我的 Ionic 应用程序提供身份验证。该应用程序使用 AWS Amplify 执行注册和登录操作。

现在,我需要添加 facebook 身份验证,因此我添加了一个外部联合身份映射,还将 facebook 属性映射到相应的 Cognito 用户池属性。

在应用程序端,我使用 Facebook SDK 登录 Facebook,接收 Facebook 的 JWT 令牌并调用 Amplify federatedSignIn() 进行身份验证。身份验证有效,但没有在 Cognito 用户池中创建用户(根据 official documentation "Whether your users sign in directly or through a third party, all users have a profile in the user pool")。

由于没有创建用户,因此我无法调用 Amplify 方法 currentSession() 来获取令牌(用于 lambda 身份验证),因为没有用户。

我是不是漏掉了什么?

这是使用联合身份的预期行为。为了通过 Cognito 用户池使用社交登录,必须使用 Cognito 的内置托管 UI,目前 Ionic 不支持它。