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

如何在Amplify Gen 2 Cognito资源中禁用「创建账户」功能?

禁用Amplify Gen 2登录组件的「创建账户」模块

可以通过前端组件配置+后端权限限制的方式实现,具体操作如下:

  • 前端隐藏「创建账户」入口
    以React为例,在渲染<Authenticator>组件时,直接设置hideSignUp属性为true,即可隐藏登录界面的注册按钮:

    import { Authenticator } from '@aws-amplify/ui-react';
    import '@aws-amplify/ui-react/styles.css';
    
    export default function App() {
      return (
        <Authenticator hideSignUp={true}>
          {({ signOut, user }) => (
            <main>
              <h1>Hello {user?.username}</h1>
              <button onClick={signOut}>Sign out</button>
            </main>
          )}
        </Authenticator>
      );
    }
    

    若使用Vue框架,只需在<amplify-authenticator>组件上添加hide-sign-up属性即可。

  • 后端禁用自助注册权限
    仅隐藏前端按钮不够,需在后端配置中彻底关闭自助注册,防止用户通过API绕过前端限制。在amplify/auth/resource.ts文件中修改认证资源配置:

    import { defineAuth } from '@aws-amplify/backend';
    
    export const auth = defineAuth({
      loginWith: {
        email: true,
      },
      allowGuestAccess: false,
      userPoolDefaults: {
        adminCreateUserConfig: {
          allowAdminCreateUserOnly: true, // 仅允许管理员创建账户
          inviteMessageTemplate: {
            email: {
              subject: '你的账户已创建',
              message: '你的用户名是{username},临时密码是{####}',
            },
          },
        },
      },
    });
    

    配置完成后执行amplify push部署后端,此时只有AWS控制台或Admin SDK能创建用户,前端和公开API都无法发起注册请求。

  • 验证效果
    部署完成后,前端登录界面将不再显示「创建账户」选项,同时后端会拒绝所有自助注册的请求,确保账户只能由管理员手动创建。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 19:05:53