AWS Cognito用户删除后记录自动重建问题求助
问题分析与解决方案
为什么会出现这种情况?
- IFTTT手里握着有效的刷新令牌,就算你删了用户,它还是能靠这个令牌向Cognito申请新的访问凭证。
- 你的Cognito用户池大概率开了允许通过身份提供商自动创建用户的开关——当IFTTT用刷新令牌请求凭证时,Cognito会自动把已经删除的用户重新建出来。
admin_user_global_sign_out()只能让当前的访问/ID令牌失效,管不了刷新令牌,更拦不住用户自动重建这回事。
解决步骤
作废所有关联的刷新令牌
用boto3的revoke_token()方法把用户的刷新令牌全部废掉,这样IFTTT就没法再申请新凭证了。示例代码:import boto3 cognito_client = boto3.client('cognito-idp') # 替换成实际的刷新令牌和应用客户端ID cognito_client.revoke_token( Token='用户的刷新令牌', ClientId='你的IFTTT集成应用客户端ID' )如果不知道具体的刷新令牌,可以先调用
list_users()拿到用户ID,再用admin_list_user_auth_events()查看该用户的认证事件记录,找出对应的刷新令牌值。关掉自动创建联合用户的开关
登录Cognito控制台,找到你的用户池,进入对应应用客户端的OAuth设置页面,把允许通过身份提供商自动创建用户这个选项关掉。这样就算IFTTT还有旧令牌,也不会触发用户重建了。让用户手动退出IFTTT
通知用户在IFTTT平台手动退出登录,清除本地缓存的凭证——不然客户端可能还存着没过期的本地令牌,得手动清掉才能彻底失效。检查身份提供商配置
核对和IFTTT集成的身份提供商设置,确保没有残留的旧用户关联记录,避免后续登录时再出问题。
内容的提问来源于stack exchange,提问作者heathen2K
相关产品推荐
相关产品推荐

