public IActionResult Cadastro(CadastroViewModel Cadastro) { // Busca o cadastro pelo e-mail e senha Cadastro cadastroBuscado = repository.BuscarEmalSenha(cadastro.Email, cadastro.Senha); if (cadastroBuscado == null) { return(NotFound("E-mail ou senha inválidos")); } var claims = new[] { new Claim(JwtRegisteredClaimNames.Email, cadastroBuscado.Email), new Claim(JwtRegisteredClaimNames.Jti, cadastroBuscado.Id.ToString()), new Claim(ClaimTypes.Role, cadastroBuscado.Acesso.ToString()) }; var key = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("WsTower-chave-autenticacao")); var creds = new SigningCredentials(key, SecurityAlgorithms.HmacSha256); var token = new JwtSecurityToken( issuer: "WsTower.WebApi", // emissor do token audience: "WsTower.WebApi", // destinatário do token claims: claims, expires: DateTime.Now.AddHours(2), signingCredentials: creds ); return(Ok(new { token = new JwtSecurityTokenHandler().WriteToken(token) })); }