Example #1
0
        public TokenDeAcesso Autenticar(LoginAcesso login)
        {
            var usuario = _repository.ObterTodos().SingleOrDefault(u => u.Email == login.Email && u.Senha == login.Senha);

            if (usuario == null)
            {
                return(null);
            }

            var tokenHandler   = new JwtSecurityTokenHandler();
            var key            = Encoding.ASCII.GetBytes(_appSettings.ChaveSecretaToken);
            var dataDeValidade = DateTime.Now.AddHours(4);

            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, usuario.Id.ToString()),
                    new Claim(ClaimTypes.Email, usuario.Email)
                }),
                Expires            = dataDeValidade,
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };

            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(new TokenDeAcesso
            {
                Token = tokenHandler.WriteToken(token),
                ValidoAte = dataDeValidade
            });
        }
        public IActionResult Token([FromBody] LoginAcesso login)
        {
            var tokenDeAcesso = _autenticacaoService.Autenticar(login);

            if (tokenDeAcesso == null)
            {
                return(BadRequest("Usuário ou senha errada"));
            }

            return(Ok(tokenDeAcesso));
        }