AWS Cognito授权器使用有效令牌返回403错误,寻求解决方案
排查API Gateway + Cognito授权器403令牌无效问题
以下是开发者常遇到的几个排查方向,按优先级梳理:
确认令牌类型与请求格式
API Gateway的Cognito授权器需要对应类型的令牌:如果授权器配置的是ID令牌,就不能用访问令牌,反之亦然。同时确保请求头格式为Authorization: Bearer <你的令牌>,不要漏掉Bearer前缀,也不要有多余空格。验证令牌受众(Audience)匹配
用jwt.io解析令牌,检查:- ID令牌的
aud字段必须和授权器配置的App Client ID完全一致 - 访问令牌的
client_id字段也要对应授权器绑定的App Client ID
哪怕字符有一处差异,都会触发403。
- ID令牌的
检查令牌有效期与系统时间
解析令牌里的iat(签发时间)和exp(过期时间),确认当前服务器时间处于这个区间内。AWS服务对时间差敏感,哪怕几分钟偏差都可能导致令牌被判定过期。确认授权器与API资源的绑定
检查你调用的API方法是否已关联该Cognito授权器——很多开发者会忽略这一步,导致接口未走授权验证逻辑,直接返回403。核对用户池与授权器的区域/ID配置
确保API Gateway和Cognito用户池在同一AWS区域,授权器里填写的用户池ID无拼写错误(比如前缀的区域码是否正确)。查看API Gateway日志定位具体错误
开启API Gateway的CloudWatch日志,查看授权失败的详细日志,里面会明确说明是令牌签名无效、受众不匹配、权限不足还是其他原因——这是最直接的排查方式。
内容的提问来源于stack exchange,提问作者Roshi
相关产品推荐
相关产品推荐

