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); }