Customize
Seamlessly integrate Auth0 with your own brand
localhost
Auth Challenge
Add SimpleCaptcha.tsx
interface ISimpleCaptcha { image: string; } const SimpleCaptcha = ({ image }: ISimpleCaptcha) => ( <> <div> <Frame><img src={image} alt="captcha" /></Frame> </div> <input label="Enter the code shown above" type="text" name="captcha" id="captcha" /> </> ); export default SimpleCaptcha;
{screenProvider.screen.isCaptchaAvailable ? <SimpleCaptcha image={screenProvider.screen.captchaImage} /> }
Add a Simple CAPTCHA
import { ChangeEvent } from "react"; import { LoginId as ScreenProvider } from "@auth0/auth0-acul-js"; // UI Components import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { Text } from "@/components/ui/text"; import { Link } from "@/components/ui/link"; import SimpleCaptcha from "@/components/ui/simple-captcha"; import { CardHeader, CardTitle, CardDescription, CardContent, } from "@/components/ui/card"; export default function LoginId() { // Initialize the SDK for this screen const screenProvider = new ScreenProvider(); // Handle the submit action const formSubmitHandler = (event: ChangeEvent<HTMLFormElement>) => { event.preventDefault(); // grab the values from the form const identifierInput = event.target.querySelector( "input#identifier" ) as HTMLInputElement; const captchaInput = event.target.querySelector( "input[name='captcha']" ) as HTMLInputElement; // Call the SDK screenProvider.login({ username: identifierInput?.value, captcha: captchaInput?.value }); }; // Render the form return ( <form noValidate onSubmit={formSubmitHandler}> <CardHeader> <CardTitle className="mb-2 text-3xl font-medium text-center"> {screenProvider.screen.texts?.title ?? "Welcome"} </CardTitle> <CardDescription className="mb-8 text-center"> {screenProvider.screen.texts?.description ?? "Login to continue"} </CardDescription> </CardHeader> <CardContent> <div className="mb-2 space-y-2"> <Label htmlFor="identifier"> {screenProvider.screen.texts?.emailPlaceholder ?? "Enter your email"} </Label> <Input type="text" id="identifier" name="identifier" defaultValue={ screenProvider.screen.data?.username ?? screenProvider.untrustedData.submittedFormData?.username } /> </div> {screenProvider.screen.isCaptchaAvailable ? <SimpleCaptcha image={screenProvider.screen.captchaImage} /> } <Button type="submit" className="w-full"> {screenProvider.screen.texts?.buttonText ?? "Continue"} </Button> <Text className="mb-2"> {screenProvider.screen.texts?.footerText ?? "Don't have an account yet?"} <Link className="ml-1" href={screenProvider.screen.signupLink ?? "#"}> {screenProvider.screen.texts?.footerLinkText ?? "Create your account"} </Link> </Text> <Text> Need Help? <Link className="ml-1" href={screenProvider.screen.resetPasswordLink ?? "#"} > {screenProvider.screen.texts?.forgottenPasswordText ?? "Forgot your Password?"} </Link> </Text> </CardContent> </form> ); }
Was this page helpful?