public IActionResult Login([FromBody] Model.Requests.User.UserLoginRequest request) { var user = _service.Authenticate(request); if (user == null) { return(BadRequest(new { message = "Email ili lozinka nisu ispravni!" })); } return(Ok()); }
public IActionResult Authenticate(JwtRequest jwtRequest) { var response = repo.Authenticate(jwtRequest); if (response == null) { return(BadRequest(new { message = "Invalid credentials" })); } return(Ok(response)); }
protected override async Task <AuthenticateResult> HandleAuthenticateAsync() { if (!Request.Headers.ContainsKey("Authorization")) { return(AuthenticateResult.Fail("Missing Authorization Header")); } Model.User 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(new Model.Requests.User.UserLoginRequest() { Username = username, Password = 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.Username), new Claim(ClaimTypes.Name, user.FirstName), }; claims.Add(new Claim(ClaimTypes.Role, user.Role.Name)); var identity = new ClaimsIdentity(claims, Scheme.Name); var principal = new ClaimsPrincipal(identity); var ticket = new AuthenticationTicket(principal, Scheme.Name); return(AuthenticateResult.Success(ticket)); }