You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS Cognito直接请求URL配置困惑:用户池域名请求超时

AWS Cognito直接请求的正确URL格式说明

首先明确:你用的https://<my_userpool_name>.auth.us-east-1.amazoncognito.com这个基础域名是对的,但直接访问根域名会超时——因为Cognito的用户池域名根路径没有绑定服务,必须追加对应操作的端点路径。以下是不同场景下的正确URL及注意事项:

1. 用户名密码直接获取令牌(OAuth2密码模式)

适合前端或后端直接用用户名密码认证,不需要跳转Hosted UI。正确URL是:

https://<userpool-domain>.auth.<region>.amazoncognito.com/oauth2/token

这是POST请求,必须携带以下参数(表单格式或JSON):

  • grant_type=password
  • client_id=<你的客户端ID>
  • client_secret=<你的客户端密钥>(因为你的客户端配置了密钥,必须传这个,否则会触发你遇到的密钥未接收错误)
  • username=<用户账号>
  • password=<用户密码>
    注意:需要在Cognito客户端设置的"Allowed OAuth Flows"里开启ALLOW_PASSWORD_AUTH。

2. 后端Admin端用户认证(无交互场景)

如果是后端服务调用,推荐用Cognito Admin API,URL是:

https://cognito-idp.<region>.amazonaws.com/

这是POST请求,需要用AWS签名V4认证(可以用AWS SDK自动处理签名),请求体示例:

{
  "AuthFlow": "ADMIN_USER_PASSWORD_AUTH",
  "ClientId": "<你的客户端ID>",
  "UserPoolId": "<你的用户池ID>",
  "AuthParameters": {
    "USERNAME": "<用户账号>",
    "PASSWORD": "<用户密码>",
    "SECRET_HASH": "<计算后的Secret Hash>"
  }
}

这里的SECRET_HASH是用客户端密钥、用户名、客户端ID计算的HMAC-SHA256值(公式:HMAC-SHA256(客户端密钥, 用户名 + 客户端ID)),客户端配置密钥时必须传这个参数,否则会触发密钥错误。

关于Hosted UI路径的说明

/oauth2/authorize确实是跳转AWS托管登录页的端点,适合授权码流程(需要用户手动输入账号密码),如果你不需要跳转,就不用这个路径。

最后提醒:你遇到的"Client is configured for secret but secret was not received?"错误,核心原因就是请求中缺少了客户端密钥相关的验证信息——密码模式要传client_secret,Admin API要传SECRET_HASH,只要补上就能解决这个问题。

内容的提问来源于stack exchange,提问作者Jesse Finnegan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 12:35:13