AWS Amplify Auth:如何禁用 AmplifyConfirmSignUp?

AWS Amplify Auth: How to disable AmplifyConfirmSignUp?

我目前正在使用 AWS Amplify 身份验证,使用 Cognito 进行 React 身份验证。 用户注册必须通过单击他们通过电子邮件收到的确认 link 来确认他们的新帐户。

当 a 提交他们的注册信息时,显示的下一个 UI 是要求用户确认代码的确认注册。我不需要这个阶段,因为这是在用户确认他们的电子邮件时处理的。

我正在使用 react-ui 放大组件来控制身份验证和用户 signup/in/out。

import React from "react";
import "./App.css";
import { BrowserRouter as Router } from "react-router-dom";
import "bootstrap/dist/css/bootstrap.min.css";
import { Container } from "react-bootstrap";
import NavBar from "./components/NavBar.js";

import {
  AmplifyAuthenticator,
  AmplifySignUp,
  AmplifyConfirmSignUp,
  AmplifySignOut,
} from "@aws-amplify/ui-react";

import RouteContainer from "./components/RouteContainer";

function App() {
  return (
    <div>
      <AmplifyAuthenticator usernameAlias="email">
        <AmplifySignUp
          slot="sign-up"
          usernameAlias="email"
          formFields={[
            {
              type: "email",
              label: "Enter your email",
              placeholder: "Enter your email",
              required: true,
            },
            {
              type: "password",
              label: "Enter your password",
              placeholder: "",
              required: true,
            },
            {
              type: "custom:postcode",
              label: "Enter your postcode",
              placeholder: "",
              required: true,
            },
          ]}
        >
          <AmplifyConfirmSignUp/>

        </AmplifySignUp>
        <AmplifySignOut />
        <Router>
          <Container>
            <RouteContainer />
          </Container>
        </Router>
        <NavBar />
      </AmplifyAuthenticator>
    </div>
  );
}

export default App;

是否有我可以传递的道具来禁用 <AmplifyConfirmSignUp/> 或其他方法来从标准注册流程中禁用它?

谢谢。

您可以在 Cognito 面板中禁用验证。

  1. 转到https://console.aws.amazon.com/cognito/
  2. 点击"Manage User Pools"
  3. 在 "General settings" 中点击 "MFA and verifications"
  4. 在 "Which attributes do you want to verify?" 下选择 "No verification"

您可以auto-confirm 用户使用 lambda 函数。这是 documentation

  • 在响应中创建 lambda 函数 (See Docs) 和 return autoConfirmUser
exports.handler = async (event, _context, callback) => {
  console.log(`EVENT: ${JSON.stringify(event)}`);
  event.response.autoConfirmUser = true;
  callback(null, event);
};
  • 将您的 lambda 函数附加到 Pre Sign-up Lambda 触发器

不过,如果用户忘记 his/her 密码,请注意这一点。他将无法恢复它。所以请记住。 Here's more about this on Github

希望对您有所帮助:)

Credits