AWS Cognito内置登录重定向问题

时间:2019-09-14 17:00:09

标签: c# .net-core amazon-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重定向到所需的url。任何想法都欢迎。

1 个答案:

答案 0 :(得分:2)

您不应将“ redirect_uri”设置为Cognito的登录端点。这没有道理。 “ redirect_uri”是一个参数,用于告诉Cognito登录后将用户带到哪里,这将是您应用程序的网址。

出于安全原因配置的应用客户端的“ 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,否则将通过Login将您带到登录页面。具有提供给授权端点的查询字符串的端点。