private UsuarioRepostaLogin MontarRespostaLogin(string compactToken, IdentityUser usuario, IList <Claim> claims)
        {
            var resposta = new UsuarioRepostaLogin
            {
                AccessToken  = compactToken,
                ExpiresIn    = TimeSpan.FromHours(_appSettings.ExpiracaoHoras).TotalSeconds,
                UsuarioToken = new UsuarioToken
                {
                    Id     = usuario.Id,
                    Email  = usuario.Email,
                    Claims = claims
                             .Select(x => new UsuarioClaim
                    {
                        Type  = x.Type,
                        Value = x.Value
                    })
                }
            };

            return(resposta);
        }
        private async Task RealizarLogin(UsuarioRepostaLogin resposta)
        {
            var token = ObterTokenFormatado(resposta.AccessToken);

            var claims = new List <Claim>();

            claims.Add(new Claim("Jwt", resposta.AccessToken));
            claims.AddRange(token.Claims);

            var claimsIdentity = new ClaimsIdentity(claims, CookieAuthenticationDefaults.AuthenticationScheme);

            var authProperties = new AuthenticationProperties
            {
                ExpiresUtc   = DateTimeOffset.UtcNow.AddMinutes(60),
                IsPersistent = true
            };

            await HttpContext.SignInAsync(
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(claimsIdentity),
                authProperties);
        }