Deo zbornika Učimo Javascript

Autentifikacija korisnika

Registracija i autentifikacija korisnika je relativno složena procedura, nezaobilazna u većini standardnih aplikacija.

Prvo ćemo praviti ručno celu proceduru autentifikacije, kako bismo prošli svaki korak. Posle možemo koristiti standardne biblioteku Mongoose i Passport.

Autentifikacija na bekendu

Koraci autentifikacije pomoću nodejs-a i mongodb-a:

  • Napraviti u bazi novu kolekciju korisnici
  • Osmisliti koja polja svaki korisnik treba da ima (npr. email i lozinka su obavezni, moze jos ime, username, uloga i sl.)
  • Kriptovati lozinku pre unosa u bazu (koristi se neka jednosmerna hash funkcija poput md5)
  • Kada postojeci korisnik zeli da se uloguje, prvo kriptovati lozinku koju je poslao (istom funkcijom naravno), pa uporediti sa kriptovanom lozinkom u bazi
  • Generisati random token koji ce trajati odredjeno vreme za svakog korisnika, kako ne bi morao da salje ime i lozinku svaki put (pogledati video)
  • Proveravati korisnika preko validnog tokena koji ce svaki put slati sa frontenda

Autentifikacija na frontendu

  • Napraviti formular za registraciju (sa poljima u dogovoru sa bekendom) koji šalje POST zahtev
  • Ako registracija uspe, prikazati korisniku poruku da je uspela i da se sada može prijaviti
  • Napraviti formular za prijavu koji šalje POST zahtev
  • Ako prijava uspe, sačuvati u lokalStorage-u token koji se dobija od bekenda
  • Od sada nadalje automatski slati token sa svakim HTTP zahtevom za koji je potrebna autentifikacija
  • Promeniti interfejs aplikacije u skladu sa činjenicom da je korisnik ulogovan (npr. umesto dugmeta Prijava ide Moj profil)
  • Prilikom ponovnog pokretanja aplikacije, proveriti da li je korisnik već prijavljen i prilagoditi UI

Bonus

Pokušajte da smislite kako je moguce imati autentifikaciju korisnika bez lozinke?