private Task <ClaimsIdentity> GetClaims(AutenticarUsuarioComando comando) { var usuario = _repository.OterUsuario(comando.Email); if (usuario.ClaimValue == "Cliente") { ObterIDConsulta IdEmpresa = _clienteRepository.ObterID(usuario.ID); if (_repository.Autenticar(comando.Email, comando.Senha)) { _usuario = usuario; } _IdEmpresa = IdEmpresa; return(Task.FromResult(new ClaimsIdentity( new GenericIdentity(IdEmpresa.ID.ToString(), "Token"), new[] { new Claim(usuario.ClaimType, usuario.ClaimValue), }))); } if (usuario.ClaimValue == "Funcionario") { ObterIDConsulta IDFuncionario = _empresaRepository.ObterIdEmpresa(usuario.ID); if (_repository.Autenticar(comando.Email, comando.Senha)) { _usuario = usuario; } _IdEmpresa = IDFuncionario; return(Task.FromResult(new ClaimsIdentity( new GenericIdentity(IDFuncionario.ID.ToString(), "Token"), new[] { new Claim(usuario.ClaimType, usuario.ClaimValue), }))); } ObterIDConsulta ID = _empresaRepository.ObterIdEmpresa(usuario.ID); if (_repository.Autenticar(comando.Email, comando.Senha)) { _usuario = usuario; } _IdEmpresa = ID; return(Task.FromResult(new ClaimsIdentity( new GenericIdentity(ID.ID.ToString(), "Token"), new[] { new Claim(usuario.ClaimType, usuario.ClaimValue), }))); }
public ActionResult Login(AutenticarUsuarioComando comando) { AutenticacaoAplicacaoService autenticacaoAplicacaoService = new AutenticacaoAplicacaoService(); UsuarioData data = autenticacaoAplicacaoService.autenticar(comando); if (data != null) { Session["login"] = data.login; Session["nome"] = data.nome; Session["email"] = data.email; Session["gestor"] = this.usuarioLogadoGestor(); Session["papel"] = this.usuarioPapel(); } else { TempData["msgAutenticacao"] = "Falha no login"; } return(RedirectToAction("Index", "Home")); }
public async Task <IActionResult> Post([FromBody] AutenticarUsuarioComando comando) { var identity = await GetClaims(comando); var claims = new[] { new Claim(JwtRegisteredClaimNames.Email, comando.Email), new Claim(JwtRegisteredClaimNames.Jti, await _tokenOptions.JtiGenerator()), new Claim(JwtRegisteredClaimNames.Iat, ToUnixEpochDate(_tokenOptions.IssuedAt).ToString(), ClaimValueTypes.Integer64), identity.FindFirst("PontuaAe") }; var jwt = new JwtSecurityToken( issuer: _tokenOptions.Issuer, audience: _tokenOptions.Audience, claims: claims.AsEnumerable(), notBefore: _tokenOptions.NotBefore, expires: _tokenOptions.Expiration, signingCredentials: _tokenOptions.SigningCredentials); var encodedJwt = new JwtSecurityTokenHandler().WriteToken(jwt); var response = new { token = encodedJwt, expires = (int)_tokenOptions.ValidFor.TotalSeconds, users = new { id = _usuario.ID, email = comando.Email, claimValue = _usuario.ClaimValue, } }; var json = JsonConvert.SerializeObject(response, _serializerSettings); return(new OkObjectResult(json)); }
public async Task <ActionResult <dynamic> > Autenticar( [FromBody] AutenticarUsuarioComando comando, [FromServices] UsuarioManipulador manipulador) { var usuarioExistente = await manipulador.Manipular(comando); if (!usuarioExistente.Sucesso) { return(NotFound(new { message = "Usuário ou senha inválidos." })); } var usuario = usuarioExistente.Dado as Usuario; var token = TokenService.GerarToken(usuario); usuario?.EsconderSenha(); return(new { Usuario = usuario, Token = token }); }
public ActionResult LoginNovaReserva(string login, string senha, string vooId) { AutenticacaoAplicacaoService autenticacaoAplicacaoService = new AutenticacaoAplicacaoService(); AutenticarUsuarioComando comando = new AutenticarUsuarioComando(login, senha); UsuarioData data = autenticacaoAplicacaoService.autenticar(comando); if (data != null) { TempData["vooId"] = vooId; Session["login"] = data.login; Session["nome"] = data.nome; Session["email"] = data.email; Session["gestor"] = this.usuarioLogadoGestor(); Session["papel"] = this.usuarioPapel(); } else { TempData["msgAutenticacao"] = "Falha no login"; } return(RedirectToAction("NovaReservaPessoal", "Voo")); }