public async Task <LoginViewModel> Login(InsereLoginPayload model)
        {
            var user = await _context.Usuarios.FirstOrDefaultAsync(x => x.Usuario == model.Username && x.Password == model.Password);

            //if (user == null)
            //  return StatusCode(404, "Usuário ou senha inválidos");

            var token = TokenService.GenerateToken(model);

            model.Password = "";


            var retorno = new LoginViewModel();

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

            retorno.Nome = model.Username;
            //retorno.Email = model.Email;
            retorno.token = token;

            return(retorno);
        }
        public async Task <ActionResult <dynamic> > Authenticate(
            [FromServices] Context context,
            [FromBody] InsereLoginPayload model)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            try
            {
                var user = await context.Usuarios.FirstOrDefaultAsync(x => x.Usuario == model.Username && x.Password == model.Password);

                if (user == null)
                {
                    return(StatusCode(404, "Usuário ou senha inválidos"));
                }
                model.Role = user.Role;
                var token = TokenService.GenerateToken(model);
                user.Password = "";
                //model.Role = "";
                return(Ok(new
                {
                    user = user,
                    token = token
                }));;
            }
            catch
            {
                return(StatusCode(500, "Falha na autenticação"));
            }
        }
Esempio n. 3
0
        public static string GenerateToken(InsereLoginPayload user)
        {
            var tokenHandler    = new JwtSecurityTokenHandler();
            var key             = Encoding.ASCII.GetBytes(Settings.Secret);
            var tokenDescriptor = new SecurityTokenDescriptor
            {
                Subject = new ClaimsIdentity(new Claim[]
                {
                    new Claim(ClaimTypes.Name, user.Username.ToString()),
                    new Claim(ClaimTypes.Role, user.Role.ToString()),
                }),
                Expires            = DateTime.UtcNow.AddHours(2),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            };
            var token = tokenHandler.CreateToken(tokenDescriptor);

            return(tokenHandler.WriteToken(token));
        }