public IActionResult Autenticar(Autenticador autenticador) { try { Usuario usuario = usuarioRepositorio.AutenticarPorBusca(autenticador); if (usuario == null) { return(NotFound(new { mensagem = "A inspeção do usuário não fora efetivada com sucesso; depure as possíveis falhas de inscrição. " })); } var claims = new[] { new Claim(JwtRegisteredClaimNames.Email, usuario.Email), new Claim(JwtRegisteredClaimNames.Jti, usuario.IdUsuario.ToString()), new Claim(ClaimTypes.Role, usuario.IdTipoUsuario.ToString()) }; var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("opflix-chave-autenticacao")); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: "Opflix.WebApi", audience: "Opflix.WebApi", claims: claims, expires: DateTime.Now.AddMinutes(30), signingCredentials: creds); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) })); } catch (Exception ex) { return(BadRequest(new { Mensagem = "A autenticação não fora efetivada com sucesso; depure a existência de um mesmo item para a consignação inequívoca. " + ex.Message })); } }