foivz / rpp22-mkajic20-jivancic20-lgaljer20

rpp22-mkajic20-jivancic20-lgaljer20 created by GitHub Classroom
0 stars 0 forks source link

F01 - Login #3

Closed mkajic20 closed 1 year ago

mkajic20 commented 1 year ago

Za pristup aplikaciji, korisnik se treba prijaviti u sustav korištenjem multi-factor autentifkacije.

mkajic20 commented 1 year ago

Dizajnirana je forma za prijavu, u koju se upisuje korisničko ime korisnika te lozinka. Forma je kreirana na prezentacijskom sloju. Na polju za upis lozinke promijenjeno je svojstvo PasswordChar, kako upisani tekst nebi bio vidljiv, već bi bili vidljivi znakovi *, te je lozinka skrivena.

Forma za prijavu ima sljedeći dizajn: image

mkajic20 commented 1 year ago

Na sloju za pristup podacima kreirana je nova klasa UserRepository. Ta klasa služi za rad s podacima korisnika. Klasi je dodana funkcija GetUser koja dohvaća korisnika iz baze podataka na temelju proslijeđenog korisničkog imena.

image

mkajic20 commented 1 year ago

Na sloju poslovne logike kreiran je servis za prijavu. U servisu je implementirana funkcija za provjeru ispravnosti unesenih podataka, te vraća boolean vrijednost na temelju ispravnosti.

image

mkajic20 commented 1 year ago

Implementirana logika forme za prijavu, u kojoj se nakon klika na gumb za prijavu prvo provjerava jesu li polja za upis ispunjena, te ako su ispunjena se uz pomoć servisa sa sloja poslovne logike provjeri jesu li uneseni podaci ispravni, te se ispiše poruka.

image

mkajic20 commented 1 year ago

Dizajnirana forma za dvofaktorsku autentifikaciju, u koju će korisnik upisivati kontrolni kod koji će biti poslan mailom.

image

mkajic20 commented 1 year ago

Kreiran je servis za dvofaktorsku autentifikaciju. Taj servis će služiti za slanje kontrolnog koda korisniku emailom, te za provjeru je li kod koji korisnik unese ispravan. Trenutno je kreirana funkcija za generiranje nasumičnog koda.

image

mkajic20 commented 1 year ago

Prilikom pokretanja forme za dvofaktorsku autentifikaciju, korisniku se automatski pošalje mail u kojem se nalazi kontrolni kod. U tu svrhu se koristi API Sendinblue, kojem se šalje POST zahtjev sa podacima o mailu.

image

mkajic20 commented 1 year ago

Na sloju poslovne logike kreirana je funkcija CheckCode koja se poziva kada se pritisne gumb za provjeru ispravnosti koda. Toj funkciji se proslijedi string koji sadrži kod upisan u polje za unos teksta. Proslijeđeni kod se uspoređuje sa ranije generiranim kodom. Ako se kodovi razlikuju, funkcija vraća vrijednost 0 koja označava neispravan unos, a ako su kodovi jednaki vrši se provjera uloge korisnika. Ako je riječ o običnom korisniku, vraća se vrijednost 1 a ako je riječ o adminu vraća se vrijednost 2 te se na temelju vraćene vrijednosti utemelji što se treba izvršiti na prezentacijskom sloju.

image

Na sloju za pristup podacima kreirana je funkcija za dohvat uloge korisnika: image

Na prezentacijskom sloju poziva se funkcija za provjeru unesenog koda te se na temelju rezultata utvrđuje što kod čini dalje: image