Amplify React - Cognito 删除登录页面中的注册

问题描述 投票:0回答:1

有一个SO问题[如何删除登录页面中的注册][1],它解决了CF。如果是 Amplify,CF 模板由

backend-config.json

生成
  "auth": {
    "usermanager": {
      "service": "Cognito",
      "serviceType": "managed",
      "providerPlugin": "awscloudformation",
     }
   }

如何配置Amplify模板生成带属性的CF模板?

AdminCreateUserConfig:
          AllowAdminCreateUserOnly: True

链接到 Amplify 模板参考将不胜感激。

编辑: Amplify 支持覆盖生成的内容。我跑

amplify override auth
。它生成了文件
amplify\backend\auth\myusermanager\override.ts
。我做了一个覆盖:

import { AmplifyAuthCognitoStackTemplate } from '@aws-amplify/cli-extensibility-helper';

export function override(resources: AmplifyAuthCognitoStackTemplate) {
    resources.userPool.adminCreateUserConfig = {
        allowAdminCreateUserOnly: true,
    }
}

生成的 CF 模板看起来不错

  "Resources": {
    "UserPool": {
      "Type": "AWS::Cognito::UserPool",
      "Properties": {
        "AdminCreateUserConfig": {
          "AllowAdminCreateUserOnly": true
        },

无论如何,登录页面上都会有登录链接。
当我检查 Cognito 用户池策略时,我发现

Only allow administrators to create users
单选按钮被选中。

编辑 建议的答案与 VUE 有关。我正在使用 React。

"@aws-amplify/ui-react": "^2.1.0"

[1]:AWS Cognito-删除登录页面中的注册

reactjs amazon-web-services aws-cloudformation aws-amplify
1个回答
0
投票

这可以通过将

hideSignUp
传递给
Authenticator

来实现
return (
  <Authenticator hideSignUp>
    {({ signOut, user }) => (
      <main>
        <h1>Hello {user?.username}</h1>
        <button onClick={signOut}>Sign out</button>
      </main>
    )}
  </Authenticator>
);

© www.soinside.com 2019 - 2024. All rights reserved.