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

AWS Cognito授权器验证异常:Access Token返回401,IdToken返回200

问题排查:Cognito授权器无法验证Access Token但可正常验证IdToken

可能原因及对应解决步骤

1. Access Token受众(Audience)不匹配

  • Cognito Access Token的aud字段默认是用户池的客户端ID,但API Gateway的Cognito授权器默认会验证用户池ID作为受众,两者不匹配就会导致验证失败。
  • 解决:进入API Gateway的授权器配置页面,将**受众(Audience)**设置为你的Cognito用户池客户端ID;如果有多个客户端,用逗号分隔多个ID。

2. 签名验证的Issuer配置错误

  • Access Token的iss字段格式为https://cognito-idp.<区域>.amazonaws.com/<用户池ID>,如果授权器配置的提供商名称与该值不一致,会导致签名验证失败。
  • 解决:确认授权器的提供商名称填写的是正确的用户池Issuer URL,不要遗漏区域代码或用户池ID。

3. Token来源配置与实际传递位置不符

  • 若你在请求中把Access Token放在了授权器未指定的位置(比如错误的HTTP Header),授权器无法正确提取Token进行验证。
  • 解决:检查授权器的Token来源配置,确保它指向你传递Access Token的Header(通常是Authorization,传递格式为Bearer <Access Token>)。

4. 权限范围(Scope)未正确配置

  • 如果API Gateway的资源方法设置了OAuth范围验证,但Access Token未包含对应的scope,会触发验证失败。
  • 解决:
    • 在Cognito用户池客户端中启用需要的scope(比如aws.cognito.signin.user.admin或自定义scope);
    • 在API Gateway的对应资源方法设置中,将OAuth范围设为匹配的scope值;
    • 确保获取Access Token时的请求中指定了正确的scope参数。

5. Access Token本身无效

  • 检查Access Token是否过期(查看Token中的exp字段)、是否被篡改,或者请求中是否缺少Bearer前缀导致格式错误。
  • 解决:重新获取有效的Access Token,确保请求中使用Bearer <Token>的正确格式传递。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 09:19:55