๐ŸŽฌ Simulate:

Register Authentication

Choose how you would like to verify your identity

๐Ÿ“ Spec notes โ€” UC-IDP.01 / SCR-IDP.01 (fields, actions, requirements)
Identity
  • Screen: SCR-IDP.01 โ€” Register Landing (Register Authentication)
  • Use case: UC-IDP.01 โ€” used by both TVET and External Learner paths (steps 6โ€“9)
Fields
  • auth_method "Authentication method" โ€” enum [email_otp, mobile_otp, google_sso] ยท default: email_otp ยท always visible
  • email "Email address" โ€” text ยท format:email ยท max 255 ยท required when auth_method==email_otp ยท visible when auth_method==email_otp ยท LearnerProfile.email
  • country_code "Country code" โ€” "+856" ยท read-only ยท visible when auth_method==mobile_otp
  • mobile "Mobile number" โ€” phone ยท required when auth_method==mobile_otp ยท visible when auth_method==mobile_otp ยท LearnerProfile.mobile
Actions
  • continue "Continue" โ€” enabled when fields valid or google_sso selected ยท Email OTP (AF 2A step 6): include SUC-IDP-01 (Authenticate via Email OTP); Mobile OTP (AF 2A.3A step 3): include SUC-IDP-02 (Authenticate via Mobile OTP); Google SSO (AF 2A.3B): include SUC-IDP-03 (Authenticate via Google SSO); each SUC handles code delivery / identity verification / error handling and returns a verified or failed result
  • go_to_login "Already have an account? Sign in" โ€” always enabled
  • back "โ† Back" โ€” always ยท returns to SCR-IDP.43 (Institution Preference)
Additional requirements
  1. Errors shown inline, not as browser alerts (NFR-09). Keyboard focus: method selector โ†’ contact input โ†’ primary button (NFR-09).
  2. Google SSO option must use official Google logo per Google Identity Branding Guidelines (SS-IDP.22).
  3. AF-2A.5A duplicate contact (email already registered): inline status with "Go to Login" + "Use different contact" โ€” both shown simultaneously, no dismiss (SS-IDP.03).
  4. AF-2A.3B.4A โ€” Google identity already linked to an existing account: shown in place of the Google contact-input area, message "This Google account is already linked to an existing account." with a single "Go to Login" button; this is a terminal state (resume_at: end_failure) โ€” the normal Continue / Sign in / Back actions are hidden.