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

Vite/React中Amplify Cognito redirectSignOut不生效求助

解决Amplify Cognito登出后未跳转到指定主页面的问题

针对你在多应用场景下遇到的登出重定向失效问题,可以从以下几个方向排查:

1. 登出时显式指定重定向参数

默认调用signOut()可能不会自动触发配置中的redirectSignOut逻辑,尤其是多应用共享Cognito会话的场景下,需要在登出时显式传入参数:

import { signOut } from 'aws-amplify/auth';

// 全局清除会话并指定重定向地址
await signOut({
  global: true, // 清除所有关联应用的Cognito会话
  redirectUri: 'https://你的主页面登录URL'
});

其中global: true是关键,它会触发Cognito的全局登出流程,确保所有子应用的会话都被清除,同时触发配置的重定向地址。

2. 严格匹配URL格式

Cognito对允许的登出URL匹配规则非常严格,必须确保:

  • 代码配置的redirectSignOut地址,与Cognito控制台【用户池/应用集成/应用客户端/允许的登出URL】完全一致,包括是否带末尾斜杠、HTTPS协议、端口号(如果有)
  • 比如配置的是https://main-app.com/login,就不能写成https://main-app.com/login/,否则会被判定为不匹配

3. 统一所有应用的Amplify配置

主应用和所有子应用的authConfig中,redirectSignOut必须统一设置为主页面的登录URL,不能让子应用配置成自身地址。同时确保Amplify初始化时正确加载配置:

import { Amplify } from 'aws-amplify';
import { authConfig } from './path/to/authConfig';

// 确保初始化时正确注入Auth配置
Amplify.configure({ Auth: authConfig });

4. 验证Cognito客户端的OAuth配置

除了允许的登出URL,还要检查用户池应用客户端的OAuth设置:

  • 确认授权类型中勾选了与responseType对应的选项(你用的是token,需要勾选"允许隐式流")
  • 检查域名配置中的登出URL是否也指向主页面(部分场景下需要这里同步配置)

5. 清除缓存测试

浏览器的旧会话缓存可能干扰重定向逻辑,建议用无痕模式测试,或者手动清除LocalStorage中amplify-开头的存储项,确保加载最新配置。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 16:58:15