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

Cognito User Pool通过REST API用Refresh Token返回invalid_grant错误求助

Cognito Refresh Token 返回 invalid_grant 错误排查思路
  • 校验Refresh Token本身正确性
    确认你传递的确实是令牌接口返回的refresh_token字段值,而非access token或id token。同时检查refresh token是否被异常编码/转义/截断:refresh token包含的+、/、=等特殊字符需要严格按照x-www-form-urlencoded规则编码,不要手动处理转义,也不要遗漏编码步骤。
  • 核对授权流程与客户端配置
    你在请求初始授权码时,请求参数的scope必须包含offline_access,否则Cognito下发的refresh token本身就是无效的,刷新时会直接返回invalid_grant。同时确认请求授权码、请求初始令牌、刷新令牌三个步骤使用的client_id完全一致,没有大小写错误、多余空格等问题。另外再次确认应用客户端的OAuth配置中,已开启刷新令牌的相关权限,且未启用设备记忆、客户端密钥等你排查过以外的特殊规则。
  • 检查请求头合规性
    刷新令牌的请求不要携带Authorization请求头,如果你之前调试时加了其他接口用的Bearer token头,会导致Cognito校验失败。同时确认请求头的Content-Type严格为application/x-www-form-urlencoded,不要额外添加charset等多余参数,避免Cognito解析表单异常。
  • 排查联邦身份与令牌状态
    因为你使用的是SAML联邦认证的用户,首先确认企业IDP侧对应账号的会话未被主动吊销,Cognito用户池内对应用户状态为正常启用。另外检查用户池是否开启了风险控制、多设备登录互踢、refresh token主动吊销的相关规则,是否触发规则导致你当前使用的refresh token被提前作废。
  • 最小场景复现验证
    可以直接通过Cognito托管UI走一遍完整授权码流程,拿到refresh token后直接用Postman发送刷新请求,如果能刷新成功则说明你的Flutter代码中处理refresh token的逻辑存在问题,如果仍刷新失败则可以定位为Cognito侧的配置问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.30 01:45:03