使用联合身份的 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 不支持它。
我使用带有用户池的 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 不支持它。