AWS Cognito adminInitiateAuth调用未返回新RefreshToken问题咨询
问题原因及解决方法
你调用adminInitiateAuth使用REFRESH_TOKEN_AUTH流后未返回新Refresh Token,核心原因在于AWS Cognito的默认行为及用户池客户端配置:
1. 默认行为:Refresh Token不会自动轮换
Cognito默认状态下,使用REFRESH_TOKEN_AUTH流刷新AccessToken时,不会生成并返回新的Refresh Token,原Refresh Token会持续有效直至自身过期。
2. 获取新Refresh Token的必要配置
若要在刷新时得到新的Refresh Token,必须在用户池客户端中开启刷新令牌轮换功能,操作步骤如下:
- 登录AWS控制台,进入目标Cognito用户池
- 切换至「App integration」标签,找到对应应用客户端并点击「Edit」
- 在「Token configuration」区域的「Refresh token settings」中:
- 勾选Enable refresh token rotation
- 设置合适的Refresh token validity(如30天)
- 可选:配置Token refresh window(控制允许轮换的时间阈值,默认是有效期的1/5)
- 保存配置
3. 额外注意事项
- 开启轮换后,首次使用Refresh Token调用
adminInitiateAuth时,会返回新的Refresh Token,原Token会被标记为过期,无法再次使用 - 若Refresh Token已过期,调用会直接失败,不会返回任何令牌
- 确保应用客户端未禁用Refresh Token(在「App client settings」中确认「Refresh token」处于勾选状态)
你的现有代码本身无语法问题,完成上述配置后再次调用,就能在响应的AuthenticationResult字段中拿到新的RefreshToken。
内容的提问来源于stack exchange,提问作者Salini L
相关产品推荐
相关产品推荐

