使用 response_type=code 时,AWS Cognito 内置 UI 错误发布凭证

pac*_*man 1 amazon-cognito

我花了大量时间在这里寻找解决方案,但找不到。这是情况:

  • 我正在使用内置的 Cognito UI
  • 当我使用 response_type=code 将我的应用程序重定向到 UI 时,我可以正常进入登录页面。当我输入我的凭据并单击“登录”时,对 /login cognito 端点的 post 请求导致 405 方法不允许
  • 如果我改为使用 response_type=token 重定向我的应用程序,它会毫无问题地重定向到我的 return_url,但参数很难检索,因为它们是哈希参数而不是查询参数。

我实际上对任何一个都有效,因为文档似乎表明 /login 端点仅是 GET,我感到有些惊讶:https : //docs.aws.amazon.com/cognito/latest/developerguide/login-endpoint.html

无论如何,我更喜欢使用代码 response_type 。我在这里做错了吗?还有其他人有这个问题吗?我不认为我在做任何不寻常的事情。对我来说,就像内置 ui 流程中的某些东西被破坏了一样。我确实发现我不应该使用内置 UI,但我想让它工作,然后如果可能的话替换它。

如果您需要更多信息,请告诉我,我很乐意提供。

编辑:如果我将 redirect_url 设为 google.com,它实际上确实有效,这意味着它与我的应用程序和重定向有关,但基本上没有迹象表明出了什么问题。有谁知道我在哪里可以找到与 Cognito 中这些类型的错误相关的任何类型的相关日志或信息?

pac*_*man 5

好吧,这似乎是内置 UI 中的一个错误,我会将其提交给亚马逊。我终于发现我发送的 redirect_uri 有一个尾部斜杠,而我在 Cognito 中配置的那个没有尾部斜杠。当我删除它时它起作用。

我认为这是一个错误的原因是因为通常当我传入无效的重定向时,UI 会立即将我发送到出现该错误的页面。当唯一的区别是尾部斜杠时,我可以很好地完成登录流程,但是在尝试重定向回我的流程时,它遇到了 405 方法不允许错误。

不确定其他人是否会遇到这种非常奇怪的边缘情况,但希望这对您有所帮助。