public ActionResult <Wellness.Model.Osoba> Get([FromQuery] AutentifikacijaRequest request) { // vraca autentificarnu osobu ako je autentificiranja, ako nije null var result = _service.Authenticiraj(request.username, request.password); if (result == null) { return(null); } var osoba = _context.Osoba.Where(o => o.Id == result.Id) .Include(o => o.Uloga) .FirstOrDefault(); return(_mapper.Map <Wellness.Model.Osoba>(osoba)); /*var radnik = _mapper.Map<Wellness.Model.Radnik>(_context.Radnik.Where(c => c.OsobaId == osoba.Id) * .Include(r => r.Osoba) * .Include(t => t.Trener) * .FirstOrDefault()); * * return radnik; */ }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } Wellness.Model.Osoba 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.Authenticiraj(username, password);//trebamo napravit neki servis hur dur } 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),//idk valjda bi trebo bit password.. }; claims.Add(new Claim(ClaimTypes.Role, user.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)); }