public AutenticarUsuarioResponse AutenticarUsuario(AutenticarUsuarioResquest request) { if (request == null) { AddNotification("AutenticarUsuarioRequest", "Invalido"); return(null); } var email = new Email(request.Email); var usuario = new Usuario(email, request.Senha); AddNotifications(usuario); if (this.IsInvalid()) { return(null); } usuario = _repositoryUsuario.ObterPor(x => x.Email.Endereco == usuario.Email.Endereco && x.Senha == usuario.Senha); if (usuario == null) { AddNotification("Usuario", "Dados não encontrado"); return(null); } var response = (AutenticarUsuarioResponse)usuario; return(response); }
public object Autenticar( [FromBody] AutenticarUsuarioResquest request, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfigurations tokenConfigurations) { bool credenciaisValidas = false; AutenticarUsuarioResponse response = _serviceUsuario.AutenticarUsuario(request); credenciaisValidas = response != null; if (credenciaisValidas) { ClaimsIdentity identity = new ClaimsIdentity( new GenericIdentity(response.Id.ToString(), "Id"), new[] { new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")), //new Claim(JwtRegisteredClaimNames.UniqueName, response.Usuario) new Claim("Usuario", JsonConvert.SerializeObject(response)) } ); DateTime dataCriacao = DateTime.Now; DateTime dataExpiracao = dataCriacao + TimeSpan.FromSeconds(tokenConfigurations.Seconds); var handler = new JwtSecurityTokenHandler(); var securityToken = handler.CreateToken(new SecurityTokenDescriptor { Issuer = tokenConfigurations.Issuer, Audience = tokenConfigurations.Audience, SigningCredentials = signingConfigurations.SigningCredentials, Subject = identity, NotBefore = dataCriacao, Expires = dataExpiracao }); var token = handler.WriteToken(securityToken); return(new { authenticated = true, created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"), expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"), accessToken = token, message = "OK", RazaoSocial = response.Nome }); } else { return(new { authenticated = false, _serviceUsuario.Notifications }); } }
public async Task <IActionResult> Autenticar( [FromBody] AutenticarUsuarioResquest request, [FromServices] SigningConfigurations signingConfigurations, [FromServices] TokenConfigurations tokenConfigurations) { try { var autenticarUsuarioResponse = await _mediator.Send(request, CancellationToken.None); if (autenticarUsuarioResponse.Autenticado == true) { var response = GerarToken(autenticarUsuarioResponse, signingConfigurations, tokenConfigurations); return(Ok(response)); } return(Ok(autenticarUsuarioResponse)); } catch (System.Exception ex) { return(NotFound(ex.Message)); } }