Closed mkajic20 closed 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:
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.
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.
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.
Dizajnirana forma za dvofaktorsku autentifikaciju, u koju će korisnik upisivati kontrolni kod koji će biti poslan mailom.
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.
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.
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.
Na sloju za pristup podacima kreirana je funkcija za dohvat uloge korisnika:
Na prezentacijskom sloju poziva se funkcija za provjeru unesenog koda te se na temelju rezultata utvrđuje što kod čini dalje:
Za pristup aplikaciji, korisnik se treba prijaviti u sustav korištenjem multi-factor autentifkacije.