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);
        }
Example #2
0
        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
                );
        }