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

无法删除AWS Amplify Auth,执行amplify push提示资源不存在如何解决

问题1:amplify remove auth后执行push/publish失败的解决方案

报错原因是你项目中其他已部署的 Amplify 资源(API、Function 等)仍然保留了对已删除 Auth 资源的依赖引用,CloudFormation 模板中存在无效的Fn::GetAtt调用,按以下步骤修复:

  1. 清理项目依赖配置
    打开amplify/backend/backend-config.json文件,搜索所有dependsOn字段,删除所有关联auththisismyappg986421b的依赖条目
  2. 清理各资源的CloudFormation模板
    依次检查amplify/backend/api/、amplify/backend/function/目录下各资源对应的.template.json CloudFormation模板,搜索所有包含auththisismyappg986421b的Fn::GetAtt、Ref引用并删除
  3. 清理环境元数据
    打开amplify/backend/amplify-meta.json文件,找到auth对应的整个配置块并删除
  4. 强制推送配置
    执行命令amplify push --force完成部署,如果仍报错可先执行amplify env checkout <你的当前环境名>刷新本地环境缓存后再次推送

如果以上步骤仍无法解决,可以登录AWS控制台进入CloudFormation服务,找到对应环境的Amplify栈,手动删除模板中关联Auth资源的引用后执行栈更新,再回到本地执行amplify pull同步云端配置即可。

问题2:AWS Amplify + React + React Router 受保护路由适配方案

以下是适配React Router v6的稳定方案:

  1. 安装必要依赖
    npm install @aws-amplify/ui-react aws-amplify react-router-dom
    
  2. 项目入口配置Amplify
    在src/main.jsx或src/index.js中添加配置:
    import { Amplify } from 'aws-amplify';
    import config from './amplifyconfiguration.json';
    Amplify.configure(config);
    
  3. 封装受保护路由组件
    新建src/components/ProtectedRoute.jsx:
    import { Navigate, Outlet } from 'react-router-dom';
    import { useAuthenticator } from '@aws-amplify/ui-react';
    
    const ProtectedRoute = () => {
      const { user } = useAuthenticator(context => [context.user]);
      return user ? <Outlet /> : <Navigate to="/login" replace />;
    };
    
    export default ProtectedRoute;
    
  4. 路由配置中使用受保护路由
    修改src/App.jsx:
    import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
    import { Authenticator } from '@aws-amplify/ui-react';
    import '@aws-amplify/ui-react/styles.css';
    import Home from './pages/Home';
    import Dashboard from './pages/Dashboard';
    import ProtectedRoute from './components/ProtectedRoute';
    
    function App() {
      return (
        <Authenticator.Provider>
          <Router>
            <Routes>
              <Route path="/" element={<Home />} />
              <Route path="/login" element={<Authenticator />} />
              {/* 所有需要登录才能访问的路由都嵌套在ProtectedRoute下 */}
              <Route element={<ProtectedRoute />}>
                <Route path="/dashboard" element={<Dashboard />} />
              </Route>
            </Routes>
          </Router>
        </Authenticator.Provider>
      );
    }
    
    export default App;
    
  • 如果使用Auth0作为身份提供商,只需在Amplify Auth配置中添加Auth0的OIDC对接配置即可,路由逻辑无需修改。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:15:02