amazon-web-services - 具有授权代码授予 PKCE 的 AWS Cognito 令牌返回 {"error":"invalid_grant"}
问题描述
这个请求在几个月前有效,但是当我们再次尝试并直接使用 curl 时。它现在返回一个 invalid_grant。我一直在尝试搜索文档,但只看到以下文字而没有任何确切原因?
无效授予
- 刷新令牌已被撤销。
- 授权码已被消费或不存在。
客户端设置如下。
curl -X POST https://test-sso.auth.amazoncognito.com/oauth2/token \
-H "Content-Type: application/x-www-form-urlencoded" \
-d "grant_type=authorization_code&client_id=xxxxxxx&redirect_uri=https%3A%2F%2F1c2d5a1xxxx.ngrok.io&code=SjkkDSSDs-b2A7nJPi3cmItyRZU4-b3GMjLls&code_verifier=sdXXXXXbUR2RmFIaTVQaVpTdndLOWoxOFU9Ig"
有人最近遇到过这种情况或已经解决了这个问题吗?我意识到,甚至删除了 PKCE。它仍然返回 invalid_grant。
非常感谢
解决方案
使用 PKCE 时不需要客户端密码,它是专为无法保留的 UI 客户端设计的。
您的请求和整体行为看起来都完全正确:
- 一个授权码只能使用一次
- 如果您尝试再次使用它,则会收到 invalid_grant 错误
您是在真实 UI 中遇到错误还是仅使用 cURL 命令?如果它对您有帮助,您可以运行我的示例 UI 并跟踪 HTTP 消息,然后与您自己的解决方案进行比较。
推荐阅读
- php - 通过 mysql cli 快速连接 MySQL,但使用 PDO 速度较慢
- flutter - 有没有办法在颤振中制作像模态一样的css?
- java - org.neo4j.ogm.exception.core.MappingException:多个类具有简单名称
- java - 无法创建 Sinch 客户端
- templates - 如何在 Flask 中呈现错误页面,不会导致请求的蓝图出现错误循环?
- c - 如果数据类型像 unsigned long int 等,如何标记 ac 程序
- java - 当我使用两个图表时,如何在导航图中获取当前选定的片段 ID
- php - PHP浮点输出格式
- java - 如何在java中使用javamail读取转发的邮件?
- regex - 如何使用 sed 搜索和替换同一行中多次出现的模式?