useAuth) - Manages authentication state in ReactUser visits protected route ↓ AuthedApp component checks authentication state ↓ If not authenticated → Show Amplify Authenticator ↓ User signs in with email/password ↓ Cognito validates credentials ↓ User role is verified against allowed roles ↓ Access granted or redirect to appropriate landing page
npm install @aws-amplify/ui-react aws-amplify
Create an aws-exports.js or configure Amplify in your app initialization:
const awsmobile = {
aws_project_region: 'us-east-2',
aws_cognito_region: 'us-east-2',
aws_user_pools_id: '{YOUR USER POOL ID}',
aws_user_pools_web_client_id: '{YOUR CLIENT ID}',
oauth: {},
aws_cognito_username_attributes: ['EMAIL'],
aws_cognito_social_providers: [],
aws_cognito_signup_attributes: ['EMAIL'],
aws_cognito_mfa_configuration: 'OFF',
aws_cognito_mfa_types: ['SMS'],
aws_cognito_password_protection_settings: {
passwordPolicyMinLength: 8,
passwordPolicyCharacters: ['REQUIRES_LOWERCASE', 'REQUIRES_UPPERCASE', 'REQUIRES_NUMBERS'],
},
aws_cognito_verification_mechanisms: ['EMAIL'],
};
export default awsmobile;
import awsconfig from './aws-exports';
Amplify.configure(awsconfig);