Example #1
0
        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));
        }
Example #2
0
        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);
        }
Example #4
0
        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);
        }