public ActionResult <LoginInformacije> Login([FromBody] LoginVM x) { //1- provjera logina KorisnickiNalog logiraniKorisnik = _dbContext.KorisnickiNalog .FirstOrDefault(k => k.korisnickoIme != null && k.korisnickoIme == x.korisnickoIme && k.lozinka == x.lozinka); if (logiraniKorisnik == null) { //pogresan username i password return(new LoginInformacije(null)); } //2- generisati random string string randomString = TokenGenerator.Generate(10); //3- dodati novi zapis u tabelu AutentifikacijaToken za logiraniKorisnikId i randomString var noviToken = new AutentifikacijaToken() { ipAdresa = Request.HttpContext.Connection.RemoteIpAddress?.ToString(), vrijednost = randomString, korisnickiNalog = logiraniKorisnik, vrijemeEvidentiranja = DateTime.Now }; _dbContext.Add(noviToken); _dbContext.SaveChanges(); //4- vratiti token string return(new LoginInformacije(noviToken)); }
public static AutentifikacijaToken GetAuthToken(this HttpContext httpContext) { string token = httpContext.GetMyAuthToken(); ApplicationDbContext db = httpContext.RequestServices.GetService <ApplicationDbContext>(); AutentifikacijaToken korisnickiNalog = db.AutentifikacijaToken .Include(s => s.korisnickiNalog) .SingleOrDefault(x => token != null && x.vrijednost == token); return(korisnickiNalog); }
public ActionResult Logout() { AutentifikacijaToken autentifikacijaToken = HttpContext.GetAuthToken(); if (autentifikacijaToken == null) { return(Ok()); } _dbContext.Remove(autentifikacijaToken); _dbContext.SaveChanges(); return(Ok()); }
public ActionResult <AutentifikacijaToken> Get() { AutentifikacijaToken autentifikacijaToken = HttpContext.GetAuthToken(); return(autentifikacijaToken); }
public LoginInformacije(AutentifikacijaToken autentifikacijaToken) { this.autentifikacijaToken = autentifikacijaToken; }