public async Task <IActionResult> OnGetAsync([FromQuery] string email, [FromQuery] string senha) { string returnUrl = Url.Content("~/"); try { await HttpContext.SignOutAsync(CookieAuthenticationDefaults.AuthenticationScheme); } catch { } try { var _loginEntradaDTO = new LoginEntradaDTO { Email = email, Senha = senha }; var loginSaida = await _loginServico.LoginAsync(_loginEntradaDTO); if (loginSaida == null) { return(LocalRedirect(returnUrl)); } var jwtToken = new JwtSecurityToken(loginSaida.Token); var claims = jwtToken.Claims.ToList(); CorrigeClaimType(ref claims); HttpContext.Response.Cookies.Append("token", loginSaida.Token); var cargoId = claims.FirstOrDefault(_ => _.Type == ClaimTypes.Role)?.Value; if (cargoId == CargosConst.Recepcionista) { returnUrl += "calendario-de-consultas"; } if (cargoId == CargosConst.Laboratorio) { returnUrl += "realiza-exames"; } await HttpContext.SignInAsync( CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(new ClaimsIdentity(claims, "jwt")), new AuthenticationProperties { IsPersistent = true, RedirectUri = Request.Host.Value, }); } catch (Exception ex) { throw new Exception(ex.Message); } return(LocalRedirect(returnUrl)); }
public IActionResult PostAsync([FromBody] LoginEntradaDTO entradaDTO) { var loginSaida = _loginServicoAplicacao.Login(entradaDTO); if (loginSaida == null) { return(Unauthorized()); } return(Ok(loginSaida)); }
public LoginSaidaDTO Login(LoginEntradaDTO loginEntradaDTO) { var usuario = _usuarioServico.Autorizar(loginEntradaDTO.Email, loginEntradaDTO.Senha); if (usuario == null) { return(null); } var loginAutenticacao = _mapper.Map <LoginAutenticacaoDTO>(usuario); var loginSaida = _autenticacaoServico.Autenticar(loginAutenticacao); return(loginSaida); }
public async Task <LoginSaidaDTO> LoginAsync(LoginEntradaDTO loginEntrada) { var jsonString = JsonConvert.SerializeObject(loginEntrada); var content = new StringContent(jsonString, Encoding.UTF8, "application/json"); var response = await _applicationState.HttpClient.PostAsync("/api/login", content); if (!response.IsSuccessStatusCode) { return(null); } var loginSaida = JsonConvert.DeserializeObject <LoginSaidaDTO>(await response.Content.ReadAsStringAsync()); _applicationState.Token = loginSaida.Token; _applicationState.HttpClient.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", loginSaida.Token); return(loginSaida); }