The SIGN_IN category is designed for user authentication, login processes, and identity verification flows. Use this category when your primary goal is authenticating existing users, verifying identity, or managing login processes.
Category Specification
{
"flowCategories" : [ "SIGN_IN" ]
}
Use Cases
Perfect for SIGN_IN
User Authentication - Login forms and credential verification
Identity Verification - Two-factor authentication, document verification
Password Recovery - Reset password flows and account recovery
Session Management - Re-authentication and session validation
Security Verification - Additional security checks and confirmations
Account Access - Multi-step login processes
Not Suitable for SIGN_IN
New user registration - Use SIGN_UP instead
General inquiries - Use CONTACT_US instead
Appointment booking - Use APPOINTMENT_BOOKING instead
Survey collection - Use SURVEY instead
Recommended Components
Essential Components
TEXT_INPUT - Username, email, phone number inputs
OPT_IN - Terms acceptance, remember me options
FOOTER - Login/authenticate buttons
RADIO_BUTTONS_GROUP - Authentication method selection
DOCUMENT_PICKER - Identity document uploads for verification
Optional Components
TEXT_AREA - Additional security questions or notes
DROPDOWN - Country/region selection for verification
PHOTO_PICKER - Profile photo verification, selfie authentication
CHECKBOX_GROUP - Security preferences, notification settings
DATE_PICKER - Birth date verification
Implementation Examples
Basic Login Flow
{
"flowName" : "user_login_flow" ,
"flowCategories" : [ "SIGN_IN" ],
"flowJson" : {
"screens" : [
{
"id" : "LOGIN_SCREEN" ,
"terminal" : true ,
"success" : true ,
"title" : "Sign In to Your Account" ,
"layout" : {
"children" : [
{
"type" : "TEXT_HEADING" ,
"text" : "Welcome Back"
},
{
"type" : "BODY" ,
"text" : "Please sign in to your account to continue."
},
{
"type" : "TEXT_INPUT" ,
"label" : "Email Address" ,
"name" : "email" ,
"required" : true ,
"inputType" : "EMAIL" ,
"pattern" : "^[ \\ w- \\ .]+@([ \\ w-]+ \\ .)+[ \\ w-]{2,4}$" ,
"errorMessage" : "Please enter a valid email address"
},
{
"type" : "TEXT_INPUT" ,
"label" : "Password" ,
"name" : "password" ,
"required" : true ,
"inputType" : "PASSWORD" ,
"minLength" : 8 ,
"errorMessage" : "Password is required"
},
{
"type" : "OPT_IN" ,
"label" : "Remember me on this device" ,
"name" : "remember_me" ,
"required" : false
},
{
"type" : "FOOTER" ,
"label" : "Sign In" ,
"onClickAction" : {
"name" : "COMPLETE"
}
}
]
}
}
]
}
}
Two-Factor Authentication Flow
{
"flowName" : "two_factor_auth_flow" ,
"flowCategories" : [ "SIGN_IN" ],
"flowJson" : {
"screens" : [
{
"id" : "AUTH_METHOD" ,
"terminal" : false ,
"success" : false ,
"title" : "Verify Your Identity" ,
"layout" : {
"children" : [
{
"type" : "TEXT_HEADING" ,
"text" : "Additional Verification Required"
},
{
"type" : "BODY" ,
"text" : "For your security, please choose how you'd like to receive your verification code."
},
{
"type" : "RADIO_BUTTONS_GROUP" ,
"name" : "verification_method" ,
"label" : "How would you like to verify?" ,
"required" : true ,
"dataSource" : [
{
"id" : "sms" ,
"title" : "Text Message (SMS)" ,
"description" : "Send code to your registered phone number"
},
{
"id" : "email" ,
"title" : "Email Verification" ,
"description" : "Send code to your registered email address"
},
{
"id" : "authenticator" ,
"title" : "Authenticator App" ,
"description" : "Use your authentication app"
}
]
},
{
"type" : "FOOTER" ,
"label" : "Send Code" ,
"onClickAction" : {
"name" : "NAVIGATE" ,
"next" : "VERIFICATION_CODE"
}
}
]
}
},
{
"id" : "VERIFICATION_CODE" ,
"terminal" : true ,
"success" : true ,
"title" : "Enter Verification Code" ,
"layout" : {
"children" : [
{
"type" : "TEXT_HEADING" ,
"text" : "Verification Code Sent"
},
{
"type" : "BODY" ,
"text" : "Please enter the 6-digit verification code we sent to complete your sign-in."
},
{
"type" : "TEXT_INPUT" ,
"label" : "Verification Code" ,
"name" : "verification_code" ,
"required" : true ,
"inputType" : "NUMBER" ,
"maxLength" : "6" ,
"minLength" : "6" ,
"pattern" : "^[0-9]{6}$" ,
"errorMessage" : "Please enter the 6-digit code"
},
{
"type" : "CAPTION" ,
"text" : "Didn't receive the code? Check your spam folder or request a new one."
},
{
"type" : "FOOTER" ,
"label" : "Verify & Sign In" ,
"onClickAction" : {
"name" : "COMPLETE"
}
}
]
}
}
]
}
}
Identity Verification Flow
{
"flowName" : "identity_verification_flow" ,
"flowCategories" : [ "SIGN_IN" ],
"flowJson" : {
"screens" : [
{
"id" : "IDENTITY_CHECK" ,
"terminal" : true ,
"success" : true ,
"title" : "Identity Verification" ,
"layout" : {
"children" : [
{
"type" : "TEXT_HEADING" ,
"text" : "Verify Your Identity"
},
{
"type" : "BODY" ,
"text" : "For enhanced security, please provide additional verification to access your account."
},
{
"type" : "RADIO_BUTTONS_GROUP" ,
"name" : "document_type" ,
"label" : "Select Document Type" ,
"required" : true ,
"dataSource" : [
{ "id" : "drivers_license" , "title" : "Driver's License" },
{ "id" : "passport" , "title" : "Passport" },
{ "id" : "national_id" , "title" : "National ID Card" },
{ "id" : "other_official" , "title" : "Other Official ID" }
]
},
{
"type" : "DOCUMENT_PICKER" ,
"name" : "identity_document" ,
"label" : "Upload Document Photo" ,
"description" : "Clear photo of your selected ID document" ,
"required" : true ,
"maxFileSize" : "5MB" ,
"allowedMimeTypes" : [ "image/jpeg" , "image/png" ],
"errorMessage" : "Please upload a clear photo of your ID"
},
{
"type" : "PHOTO_PICKER" ,
"name" : "selfie_verification" ,
"label" : "Take a Selfie" ,
"description" : "Take a selfie for identity verification" ,
"required" : true ,
"photoSource" : "CAMERA" ,
"maxFileSize" : "3MB" ,
"errorMessage" : "Selfie is required for verification"
},
{
"type" : "TEXT_INPUT" ,
"label" : "Document Number" ,
"name" : "document_number" ,
"required" : true ,
"helperText" : "Enter the document number as shown on your ID"
},
{
"type" : "DATE_PICKER" ,
"name" : "birth_date" ,
"label" : "Date of Birth" ,
"required" : true ,
"helperText" : "Must match the date on your ID document"
},
{
"type" : "OPT_IN" ,
"label" : "I consent to identity verification processing" ,
"name" : "verification_consent" ,
"required" : true
},
{
"type" : "FOOTER" ,
"label" : "Submit for Verification" ,
"onClickAction" : {
"name" : "COMPLETE"
},
"centerCaption" : "Verification typically takes 1-2 business days"
}
]
}
}
]
}
}
Authentication Best Practices
Security Considerations
Password Requirements - Enforce strong password policies
Rate Limiting - Implement failed attempt limitations
Session Management - Proper timeout and renewal handling
Two-Factor Authentication - Additional security layers
Audit Logging - Track authentication attempts
User Experience Guidelines
Clear Error Messages - Helpful feedback for failed attempts
Progressive Enhancement - Start simple, add security as needed
Recovery Options - Easy password reset and account recovery
Remember Preferences - Save user authentication preferences
Accessibility - Support for screen readers and keyboards
Input Validation
{
"type" : "TEXT_INPUT" ,
"inputType" : "EMAIL" ,
"pattern" : "^[ \\ w- \\ .]+@([ \\ w-]+ \\ .)+[ \\ w-]{2,4}$" ,
"errorMessage" : "Please enter a valid email address"
}
Password Security
{
"type" : "TEXT_INPUT" ,
"inputType" : "PASSWORD" ,
"minLength" : 8 ,
"pattern" : "^(?=.*[a-z])(?=.*[A-Z])(?=.* \\ d).*$" ,
"errorMessage" : "Password must contain uppercase, lowercase, and number"
}
Multi-Step Authentication
Progressive Authentication
Break complex authentication into manageable steps:
Basic Credentials - Email/username and password
Verification Method - Choose 2FA method
Code Entry - Enter verification code
Identity Verification - Document upload if needed
Completion - Successful authentication
Conditional Flows
Use navigation to handle different authentication paths:
{
"onClickAction" : {
"name" : "NAVIGATE" ,
"next" : "TWO_FACTOR_AUTH"
}
}
Privacy and Compliance
Data Protection
{
"type" : "BODY" ,
"text" : "Your login information is encrypted and securely stored. We never share your credentials with third parties."
}
Consent Management
{
"type" : "OPT_IN" ,
"label" : "I agree to the Terms of Service and Privacy Policy" ,
"name" : "terms_consent" ,
"required" : true
}
Biometric Consent
{
"type" : "OPT_IN" ,
"label" : "I consent to biometric data collection for authentication" ,
"name" : "biometric_consent" ,
"required" : false
}
Common Authentication Patterns
Social Login Integration
{
"type" : "RADIO_BUTTONS_GROUP" ,
"name" : "login_method" ,
"label" : "How would you like to sign in?" ,
"dataSource" : [
{ "id" : "email" , "title" : "Email & Password" },
{ "id" : "google" , "title" : "Continue with Google" },
{ "id" : "facebook" , "title" : "Continue with Facebook" },
{ "id" : "apple" , "title" : "Continue with Apple" }
]
}
Account Recovery
{
"type" : "TEXT_INPUT" ,
"label" : "Recovery Email or Phone" ,
"name" : "recovery_contact" ,
"helperText" : "We'll send a recovery link to this contact method"
}
Security Questions
{
"type" : "DROPDOWN" ,
"label" : "Security Question" ,
"name" : "security_question" ,
"dataSource" : [
{ "id" : "pet_name" , "title" : "What was your first pet's name?" },
{ "id" : "school_name" , "title" : "What elementary school did you attend?" },
{ "id" : "mother_maiden" , "title" : "What is your mother's maiden name?" }
]
}
Error Handling
Authentication Failures
{
"errorCode" : "INVALID_CREDENTIALS" ,
"message" : "Invalid email or password. Please try again."
}
Account Lockout
{
"errorCode" : "ACCOUNT_LOCKED" ,
"message" : "Account temporarily locked due to multiple failed attempts. Try again in 15 minutes."
}
Verification Failures
{
"errorCode" : "INVALID_VERIFICATION_CODE" ,
"message" : "Invalid verification code. Please check and try again."
}
Related Categories
SIGN_IN flows should prioritize security, user experience, and compliance while providing clear guidance for authentication processes
Last modified on October 7, 2026