Přeskočit na hlavní obsah

S4 — Přihlášení

Screen IDS4
Typ Sekundární
FázeMVP
Účel obrazovky

Přihlášení s biometrií jako primární volbou (když už uživatel na zařízení dříve přihlášen byl), dále OAuth a fallback na email/heslo. Obrazovka může být standalone (např. z P9 — Účet) nebo late login ze sloučeného checkoutu (P5 — Objednávka & Platba). Relace platí 30 dní dle PRD-02 — toggle „Zapamatovat si mě" se nepoužívá; alternativou k dlouhé relaci je biometrické odemčení.


Content Priority

  1. Biometrie (primární) — velké tlačítko typu „Přihlásit se pomocí Face ID" / „…Touch ID" / „…otiskem" (Android) — zobrazí se jen pokud uživatel na daném zařízení už dříve úspěšně přihlášen byl a biometrie je dostupná. Pod ním OAuth v pořadí dle platformy (viz níže), full-width tlačítka s ikonou + text.
    • iOS: po biometrii (pokud je) Apple → Google → Facebook, poté oddělovač a email.
    • Android: po biometrii (pokud je) Google → Facebook → Emailbez Apple Sign In.
    Primary ButtonOAuth Button
  2. Separator — „Nebo se přihlaste emailem" (zobrazí se nad emailovým blokem; na Androidu bez Apple OAuth může text odpovídat kontextu) Divider
  3. Email pole — text input s email keyboard Text Input
  4. Heslo pole — password input (skrytý text) Password Input
  5. „Zapomenuté heslo" — text link Ghost/Text Button
  6. CTA „Přihlásit se" — primary button (email + heslo) Primary Button
  7. „Nemáte účet? Registrovat se" — secondary CTA, odkaz na S5 — Registrace Ghost/Text Button
  8. Close / Back — pro late login modal, zavření bez přihlášení Back Button

Interakce

TriggerAkceCíl
Tap biometrické tlačítkoLocalAuthentication / BiometricPromptÚspěch → obnovení relace / token, zavření modalu, návrat do kontextu
Tap na OAuth tlačítkoOtevření provider auth (in-app browser / Safari / Custom Tabs)Po úspěchu: redirect back, profil, zavření modalu
Tap „Přihlásit se" (email)Validace email + heslo, API loginÚspěch → zavření, návrat do checkout / profil
Tap „Zapomenuté heslo"Odeslání reset linku na emailToast „Odkaz odeslán na váš email"
Tap „Registrovat se"Navigace na registraciS5 — Registrace
OAuth zrušeno uživatelemZavření auth oknaNávrat na S4, žádná změna
Back / CloseZavření bez přihlášeníNávrat na P5 — Objednávka & Platba (late login) nebo P9 — Účet

Stavy

StavPopisVizuální chování
Default (první zařízení)Uživatel ještě nemá uloženou relaci pro biometriiOAuth + email blok podle platformy; bez velkého biometrického CTA
Default (opakované)Dříve přihlášen, biometrie povolenaVelké biometrické tlačítko nahoře, pod ním OAuth a email
OAuth loadingČeká na redirect od provideraSpinner overlay nebo loading na OAuth tlačítku
Login errorŠpatné heslo / neplatný emailInline error „Nesprávné přihlašovací údaje"
Account lockedPříliš mnoho pokusůError „Účet byl dočasně uzamčen, zkuste za 15 minut"
Forgot password sentReset link odeslánSuccess toast, možnost znovu zkusit přihlášení

Edge Cases a Error States

ScénářŘešení
OAuth zrušeno uživatelemTiše návrat na S4, žádný error (běžné chování)
Email není v systému„Účet s tímto emailem neexistuje — zaregistrujte se" + link na S5
Příliš mnoho pokusůCooldown 15 min, zobrazení zbývajícího času
Biometrie selže / není nastavenaSkrýt nebo disabled biometrické CTA; uživatel použije OAuth nebo email
Offline během OAuth„Pro přihlášení je třeba připojení k internetu"

Mobilní patterny a odlišení od webu

Co přebíráme

  • OAuth + email/heslo jako fallback
  • Zapomenuté heslo flow
  • Odkaz na registraci

Co děláme jinak

  • Biometrie jako první volba na známém zařízení — jedno výrazné tlačítko (ne až jako post-login prompt)
  • Pořadí providerů podle OS — Apple Sign In jen na iOS; na Androidu Google před Facebookem
  • Žádný „Zapamatovat si mě" — délku relace řídí PRD-02 (30 dní); biometrie řeší rychlý návrat
  • Native OAuth flow — ASWebAuthenticationSession (iOS) / Chrome Custom Tabs (Android)
  • Keyboard type — email klávesnice pro email pole

Aplikované patterny

  • iOS: LAContext / Face ID / Touch ID, ASAuthorizationAppleIDButton, ASWebAuthenticationSession pro OAuth
  • Android: BiometricPrompt, Credential Manager pro OAuth, Custom Tabs pro redirect

API Data

POST/account/loginPOST/account/login-by-providerPOST/account/forgotten-password-preparePOST/account/forgotten-password-finish
OperaceEndpointTriggerPoznámka
Email + heslo loginPOST /account/loginTap „Přihlásit se"Vrací JWT token
OAuth loginPOST /account/login-by-providerTap OAuth tlačítkoPodporuje Apple, Google, Facebook
Zapomenuté heslo (příprava)POST /account/forgotten-password-prepareTap „Zapomenuté heslo"Odešle reset email
Zapomenuté heslo (dokončení)POST /account/forgotten-password-finishDeep link z emailuNastavení nového hesla
CoreAPI poznatek

Autentizace je JWT per session (POST /token/create pro anonymní session, POST /account/login pro přihlášení). OAuth provider se předává jako parametr v login-by-provider. Po přihlášení se JWT token používá ve všech dalších API voláních.


Reference — Aktuální web

SCR-WEB-34: OAuth — Google, Facebook, Seznam, email/heslo form
Web ColosseumSCR-WEB-34OAuth — Google, Facebook, Seznam, email/heslo form

Reference — CineStar benchmark

SCR-CS-13: OAuth tlačítka, email/heslo, CineStar Club, tab bar
CineStar benchmarkSCR-CS-13OAuth tlačítka, email/heslo, CineStar Club, tab bar
Inspirace z CineStar

CineStar má OAuth prominently nahoře a CineStar Club (věrnostní program) jako součást přihlášení. Colosseum F1 přidá věrnostní program — podobný pattern.