public IActionResult Login([FromBody] AuthenticateModel model) { var user = _korisnikService.Authenticate(model.Email, model.Password); if (user == null) { return(BadRequest(new { message = "Email ili lozinka nisu ispravni!" })); } return(Ok(user)); }
#pragma warning disable CS1998 protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing authorization header")); } MKorisnik korisnik = null; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; AuthenticateRequest request = new AuthenticateRequest() { Username = username, Password = password }; korisnik = _korisniciService.Authenticate(request); } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } if (korisnik == null) { return(AuthenticateResult.Fail("Invalid username or password")); } var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, korisnik.KorisnickoIme), new Claim(ClaimTypes.Email, korisnik.Email) }; foreach (var i in korisnik.KorisnikUloga) { claims.Add(new Claim(ClaimTypes.Role, i.Uloga.Naziv)); } var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); //Thread.CurrentPrincipal = principal; return(AuthenticateResult.Success(ticket)); }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } Model.Korisnik user = null; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(':'); var username = credentials[0]; var password = credentials[1]; user = _userService.Authenticate(username, password); } catch { return(AuthenticateResult.Fail("Invalid Authorization Header")); } if (user == null) { return(AuthenticateResult.Fail("Invalid Username or Password")); } var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme), new Claim(ClaimTypes.Name, user.Ime), }; if (user.KorisnikUloge == null) { throw new UserException("Greska u ucitavanju uloga"); } else { foreach (var role in user.KorisnikUloge) { claims.Add(new Claim(ClaimTypes.Role, role.Uloga.Naziv)); } } var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing authorization header")); } Model.Korisnik user = null; try { var authHeader = AuthenticationHeaderValue.Parse(Request.Headers["Authorization"]); var credentialBytes = Convert.FromBase64String(authHeader.Parameter); var credentials = Encoding.UTF8.GetString(credentialBytes).Split(":"); var username = credentials[0]; var password = credentials[1]; user = await _userService.Authenticate(username, password); } catch { return(AuthenticateResult.Fail("Invalid authorization header")); } if (user == null) { return(AuthenticateResult.Fail("Invalid authorization header")); } var claims = new List <Claim> { new Claim(ClaimTypes.NameIdentifier, user.KorisnickoIme), new Claim(ClaimTypes.Name, user.Ime) }; var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }
public MKorisnik Authenticate([FromBody] AuthenticateRequest request) { return(_service.Authenticate(request)); }