Beispiel #1
0
        public IActionResult Login(
            [FromBody] AutenticacaoRequest autenticacaoRequest,
            [FromServices] IAutenticacaoServico autenticacaoServico,
            [FromServices] ConfigsAssinatura configsAssinatura,
            [FromServices] ConfigsToken configsToken)
        {
            bool credenciaisValidas = autenticacaoServico.Autenticar(autenticacaoRequest);

            if (credenciaisValidas)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(autenticacaoRequest.Login, "Login"),
                    new[] {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                    new Claim(JwtRegisteredClaimNames.UniqueName, autenticacaoRequest.Login)
                }
                    );

                DateTime dataCriacao   = DateTime.Now;
                DateTime dataExpiracao = dataCriacao +
                                         TimeSpan.FromSeconds(configsToken.Seconds);

                var handler       = new JwtSecurityTokenHandler();
                var securityToken = handler.CreateToken(new SecurityTokenDescriptor
                {
                    Issuer             = configsToken.Issuer,
                    Audience           = configsToken.Audience,
                    SigningCredentials = configsAssinatura.SigningCredentials,
                    Subject            = identity,
                    NotBefore          = dataCriacao,
                    Expires            = dataExpiracao
                });
                var token = handler.WriteToken(securityToken);

                return(Ok(new AutenticacaoResponse
                {
                    CriadoEm = dataCriacao,
                    ExpiradoEm = dataExpiracao,
                    Token = token
                }));
            }
            else
            {
                return(Ok(new Falha {
                    Titulo = "",
                    Erros = "Falha ao autenticar"
                }));
            }
        }
Beispiel #2
0
        public async Task <AutenticacaoResponse> Autenticar(AutenticacaoRequest request)
        {
            var usuario = await _context.Usuario.FirstOrDefaultAsync(x => x.Email == request.Email && x.Senha == request.Senha);

            if (usuario == null)
            {
                _notification.AddNotification("Usuário", "Usuário não foi encontrado");
                return(null);
            }

            var token = _jwtConfig.GerarToken(usuario);

            return(new AutenticacaoResponse {
                Id = usuario.Id, Email = usuario.Email, Nome = usuario.Nome, Token = token
            });
        }
Beispiel #3
0
        public IActionResult Autenticar([FromBody] AutenticacaoRequest request)
        {
            string         token = null;
            DateTime?      validade;
            int            statusCode = StatusCodes.Status403Forbidden;
            IList <string> perfis     = new List <string>();

            bool autenticado = _appService.Autenticar(request.Nome, request.Senha, out string mensagem, out UsuarioDto usuarioDto);

            if (autenticado)
            {
                statusCode = StatusCodes.Status200OK;

                token = GeraToken(usuarioDto, perfis, out validade);
            }
            else
            {
                validade = null;
            }
            return(StatusCode(statusCode, new AutenticacaoResponse(autenticado, mensagem, token, validade, perfis, usuarioDto)));
        }
Beispiel #4
0
        private async Task <AutenticacaoResponse> Autenticar(LoginViewModel model)
        {
            using (var client = new HttpClient())
            {
                client.BaseAddress = new Uri(url);

                /*
                 * Requisição
                 * {
                 *  "nome": "admin",
                 *  "senha": "202cb962ac59075b964b07152d234b70",
                 * }
                 *
                 * Resposta
                 * {
                 *  "sucesso" = "true",
                 *  "mensagem" = "mensagem do resultado da operação",
                 *  "token" = "hash informado se sucesso, caso contrário será nulo",
                 *  "dataValidade = "data de validade do token quando sucesso, em caso de falha será informado nulo"
                 * }
                 */

                AutenticacaoRequest request = new AutenticacaoRequest()
                {
                    Nome  = model.Login,
                    Senha = MD5.ByteArrayToString(MD5.HashMD5(model.Senha))
                };

                HttpResponseMessage result = await client.PostAsJsonAsync("/api/v1/usuario/autenticar", request);

                string conteudo = result.Content.ReadAsStringAsync().Result;
                AutenticacaoResponse response = JsonConvert.DeserializeObject <AutenticacaoResponse>(conteudo);

                return(response);
            }
        }
Beispiel #5
0
        public bool Autenticar(AutenticacaoRequest autenticacaoRequest)
        {
            Usuario usuario = _usuarioServico.ObterPorLoginOuEmail(autenticacaoRequest.Login);

            return(usuario.Senha.Equals(Criptografia.Criptografar(autenticacaoRequest.Senha)));
        }