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

使用chalice-cognito-auth获取id_token后仍遇'用户未授权'报错求助

解决chalice-cognito-auth授权失败问题

1. 修正Authorization请求头格式

你的curl命令中Authorization头格式错误,根据返回的token_type: Bearer,正确格式必须是Bearer + 空格 + 令牌值,而非直接填写令牌内容。

错误写法:

curl -H "Authorization: id_token value ..." http://127.0.0.1:8000/whoami

正确写法(优先使用access_token,它是专门用于资源访问的令牌):

curl -H "Authorization: Bearer eyJraWQiO..." http://127.0.0.1:8000/whoami

若需使用id_token,同样要添加Bearer前缀:

curl -H "Authorization: Bearer eyJra...sda" http://127.0.0.1:8000/whoami

2. 确认使用正确的令牌类型

  • id_token用于身份验证(确认用户身份),access_token用于资源授权(允许用户访问接口)。绝大多数场景下,接口授权应使用access_token而非id_token。
  • 检查chalice-cognito-auth的配置,明确它验证的令牌类型是access_token还是id_token。

3. 验证令牌有效性

用JWT解析工具检查令牌内容:

  • 确认exp(过期时间)未超出当前时间
  • 确认iss(签发者)与你的Cognito用户池地址完全匹配(格式通常为https://cognito-idp.<region>.amazonaws.com/<user-pool-id>)
  • 确认aud(受众)与你的Cognito客户端ID一致

4. 检查chalice-cognito-auth配置

确保Chalice应用满足以下配置要求:

  • 正确填写了Cognito用户池ID、客户端ID
  • 接口的@cognito_auth_required装饰器没有额外的用户组或权限范围限制
  • 如果接口需要特定权限范围,确认请求的access_token包含对应scope

5. 排查令牌复制问题

确保curl命令中的令牌完整无缺,没有遗漏字符、多余空格或换行符。可以将令牌存入变量后再调用,避免手动复制错误:

TOKEN="eyJraWQiO..."
curl -H "Authorization: Bearer $TOKEN" http://127.0.0.1:8000/whoami

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.21 14:15:13