public Profissional Login(LoginDto login) { var user = _profissionalRepository.Get(new List <string> { "Acesso", "Unidades" }).FirstOrDefault(p => p.Email.ToLower() == login.Email.ToLower()); if (user == null) { throw new ValidationException(ProfissionalResources.NaoCadastrado); } if (user.Acesso?.Senha == null || login.Senha != user.Acesso?.Senha) { throw new ValidationException(ProfissionalResources.SenhaInvalida); } var tokenHandler = new JwtSecurityTokenHandler(); var key = Encoding.ASCII.GetBytes(_appSettings.Secret); var tokenDescriptor = new SecurityTokenDescriptor { Subject = new ClaimsIdentity(new[] { new Claim(ClaimTypes.Name, user.Id.ToString()) }), Expires = DateTime.UtcNow.AddHours(12), SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature) }; var token = tokenHandler.CreateToken(tokenDescriptor); user.Acesso.Token = tokenHandler.WriteToken(token); user.Acesso.Ultimo = DateTime.Now; _profissionalAcessoRepository.Update(user.Acesso); user.Acesso.Senha = null; return(user); }