0

是否可以使用启用了自定义身份验证流程的 AWS Cognito,同时还使用 Facebook 或 Google 等外部身份提供商?我已经用 Facebook 和 Cognito Hosted UI 尝试过这个,但我的 DefineAuthChallenge 触发器没有被击中。

4

1 回答 1

2

我联系了 AWS Support,他们向我指出了此处的 Cognito 文档,其中有一条注释说

Amazon Cognito 托管的登录网页不支持自定义身份验证流程。

作为替代方案,提出了以下解决方案:

或者,如果您想将自定义身份验证流程与外部身份提供商一起使用,则必须使用Cognito 的一个 SDK编写自己的自定义登录流程,并使用 Facebook 作为登录方式。

我的想法是,您可以通过定义一个自定义挑战来做到这一点,该挑战会询问您要使用哪个身份提供者,作为第一个初始挑战。如果选择 Cognito,用户需要提供他们的 SRP 资料或用户名和密码(如果已启用)。例如,如果选择 Facebook,您可能需要向客户端发送身份验证质询,说明您想要他们的令牌或代码,只有在客户端显示带有 Facebook 登录名的网站时才能获得。然后,对服务器的质询响应将是从 Facebook 获取的身份验证令牌或代码或服务器可以用来在 Cognito 中对用户进行身份验证的其他答案,其中 Facebook 应用程序已连接并注册为外部身份提供者

这是我将如何去做的想法,但我实际上并没有实现它。我希望这对尝试这样做的人有所帮助。

于 2019-12-18T08:34:58.727 回答