Tema
/
Mobiliosios programėlės KOTLIN
Pamoka 8 / 14 Autentifikacija I: el. paštas ~50 min
📖 Teorija

Sesijos rakto kontraktas

Iki šiol Pica buvo anonimiška: meniu (GET /menu) mato bet kas. Bet užsakymas priklauso konkrečiam žmogui. Reikia paskyrų — ir būdo įrodyti serveriui „čia tas pats vartotojas".

Sprendimas — sesijos rakto kontraktas. Jis paprastas ir jį verta įsidėmėti, nes 8b (Google) ir 9 (užsakymai) pamokose kartosis tas pats:

1. Klientas siunčia el. paštą + slaptažodį  →  POST /login (arba /register)
2. Serveris patikrina ir grąžina ŽETONĄ     →  { "token": "eyJhbGciOi..." }
3. Klientas žetoną SAUGO
4. (9 pamoka) klientas žetoną SIUNČIA su kiekviena apsaugota užklausa

Tas žetonas — JWT (JSON Web Token): pasirašyta eilutė, kurioje užkoduota, kas vartotojas ir kada raktas nustos galioti (exp). Serveris jį pasirašo savo paslaptimi, tad klientas negali suklastoti.

Du principai, kurie svarbūs jau dabar:

  • Slaptažodis niekada nesaugomas telefone. Jį išsiunti vieną kartą; atgal gauni tik žetoną. Pames telefoną — slaptažodžio jame nėra.
  • Žetoną reikia saugoti SAUGIAI. Jis = tavo sesija. Paprastas SharedPreferences — atviras tekstas, jį gali perskaityti (root, atsarginės kopijos). Todėl naudosim šifruotą saugyklą.

Šioje pamokoje realizuojam 1–3 žingsnius (gauti ir saugiai išsaugoti žetoną). 4 žingsnis — žetono siuntimas su užklausomis — 9 pamoka. 8b pamokoje Google prisijungimas duos tą patį žetoną — kontraktas nepasikeis, tik būdas jį gauti.