Misc.

How to change AWS Amplify Authentication UI?

In this article, I will show you how you can change AWS Amplify Auth UI for SignUp. AWS Amplify makes it easy to develop mobile and web applications. Its framework which manages and easily integrate backend with Android, iOS, Web and ReactJs frontend.

Now days, I am doing cloud-enabled projects using AWS Amplify. I have get chance to integrate Amplify Auth with AWS Cognito in ReactJs application.

Here I am supposing that you already have AWS Amplify configured application in ReactJs as frontend. After configuring Auth, we will create our own Components in application and extend them with Amplify Components. Following is the code for CustomSignUp.

import React from "react";
import { SignUp } from "aws-amplify-react";

export class CustomSignUp extends SignUp {
  constructor(props) {
        super(props);
        this._validAuthStates = ["signUp"];
  }

  showComponent(theme) {
    return (
      <div className="row">
        <form>
          <div className="form-group">
            <label htmlFor="Username"
            >
              Username
            </label>
            <input
              className=""
              id="username"
              key="Username"
              name="Username"
              onChange={this.handleInputChange}
              type="text"
              placeholder="Username"
            />
          </div>
    <div className="form-group">
            <label htmlFor="email"
            >
              Email
            </label>
            <input
              className=""
              key="email"
              name="email"
              onChange={this.handleInputChange}
              type="text"
              placeholder="Email"
            />
          </div>
          <div className="form-group">
            <label htmlFor="password"
            >
              Password
            </label>
            <input
              className=""
              key="password"
              name="password"
              onChange={this.handleInputChange}
              type="password"
              placeholder="Password"
            />
          </div>
          <div className="form-group">
            <label htmlFor="phone_number"
            >
              Phone Number
            </label>
            <input
              className=""
              key="phone_number"
              name="phone_number"
              onChange={this.handleInputChange}
              type="text"
              placeholder="phone_number"
            />
          </div>
    <div className="form-group">
            <label
            >
            </label>
            <input
              className=""
              name="phone_number"
              onClick={super.signUp}
              type="button"
     value="Register"
            />
          </div>
        </form>  
      </div>
   <div className="row">
  <div className="col-12"
   <p>Go Back to 
    <Link to="#" onClick={() => super.changeState("signIn")}>Login</Link>
   </p>
  </div>
 </div>
    );
  }
}

CustomSignUp is extending with SignUp component from aws-amplify-react. This is how we override the showComponent method, we are not overriding the render method because UI defined in showCompomnent method.

This is how we can override showComponent methods for other component too like ConfimSignUp, SignIn, Forgot Password.

I hope this will help….

websourceblog

ReactJs, NodeJs, Amazon Web Services, Symfony, Laravel, CodeIgniter, Zend Framework, WordPress, Drupal, Magento, Angular

Recent Posts

30 Agents Every AI Engineer Must Build: A Blueprint for Production-Ready AI Systems

Most "AI agent" content online is still stuck at the demo stage — a slick…

2 weeks ago

Agentic Coding with Claude Code: The Book Every Developer Using AI Should Read

If you've been using Claude Code as little more than a fancy autocomplete — typing…

2 weeks ago

Centralizing Email Logging in Laravel with a Custom EmailLogChannel

When building real-world Laravel applications, email handling quickly becomes scattered. You send emails from controllers,…

4 months ago

Clean, Powerful API Filtering with Spatie Query Builder

Build flexible, readable, and secure query filters across multiple Laravel models — no more bloated…

6 months ago

AI Prompt Engineering Bible (7 Books in 1) – Master ChatGPT & Generative AI

Artificial Intelligence is transforming how we work, create, and earn. But most people get stuck…

12 months ago

How Digital Transformation Services Drive Business Growth

In today’s fast-paced world, businesses can no longer rely solely on traditional methods to stay…

12 months ago