AWS Cognito 内置登录重定向问题



我正在尝试将 Cognito 内置登录逻辑合并到我们的工作流程中。 这是我尝试工作的场景: 通过用户池中创建的用户的 Cognito 内置 UI 成功登录后,我需要重定向到特定 URI。但我不明白该怎么做。 我已经创建了用户池、应用程序客户端、配置的域、提供的回调 URL、创建了一个用户。

我将"允许的 OAuth 流"配置为使用Authorization code grant"允许的 OAuth 范围"设置为openid到目前为止 - 很好。 然后我想出了以下 URL 来变出 Cognito 内置 UI:

https://<my-domain>.amazoncognito.com/authorize?response_type=code&client_id=<my-client-id>&redirect_uri=https://<my-domain>.amazoncognito.com/login?client_id=<my-client-id>

在我选择的浏览器中执行它时,我正在点击 Cognito 内置登录页面。但是单击"登录"按钮时,我遇到了一个错误:Required String parameter 'redirect_uri' is not present

好吧,我心想,让我们在上述URL的末尾添加redirect_uri属性,路径将清除成功,但这种乐观是短暂的。我很害怕:"redirect_mismatch"错误。我尝试提供多个回调 URL,但没有成功。redirect_mismatch错误挡住了我的去路。

现在我不知道如何指示 Cognito 重定向到所需的网址。欢迎任何想法。

您不应将"redirect_uri"设置为Cognito的登录端点。这毫无意义。"redirect_uri"是一个参数,用于告诉 Cognito 用户登录后将用户带到哪里,这将是应用程序的 URL。

"redirect_uri">应与您出于安全原因配置的应用客户端的回调 URI 之一完全匹配,否则将收到"redirect_mismatch"错误。

要访问登录端点,请执行以下操作:

https://mydomain.auth.us-east-1.amazoncognito.com/login?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI

对于授权端点:

https://mydomain.auth.us-east-1.amazoncognito.com/oauth2/authorize?response_type=code&client_id=CLIENT_ID&redirect_uri=REDIRECT_URI

授权端点首先检查您是否有一个会话 cookie 指示您已登录,如果是,它会自动将您重定向到redirect_uri,否则它将通过登录终端节点将您带到登录页面,并带有提供给授权终端节点的查询字符串。

最新更新