private UsuarioRespostaLoginViewModel ObterRespostaToken(string encodedToken, IdentityUser user, IList <Claim> claims) { var response = new UsuarioRespostaLoginViewModel { AccessToken = encodedToken, ExpiresIn = TimeSpan.FromHours(_appSettings.ExpirationHours).TotalSeconds, UsuarioToken = new UsuarioTokenViewModel { Id = user.Id, Email = user.Email, Claims = claims.Select(c => new UsuarioClaimViewModel { Type = c.Type, Value = c.Value }), } }; return(response); }
private async Task RealizarLogin(UsuarioRespostaLoginViewModel usuarioResposta) { var token = ObterTokenFormatado(usuarioResposta.AccessToken); var claims = new List <Claim>(); claims.Add(new Claim("JWT", usuarioResposta.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 ); }