Ejemplo n.º 1
0
 public async Task Logout()
 {
     await _authenticationService.SignOutAsync(
         _user.ObterHttpContext(),
         CookieAuthenticationDefaults.AuthenticationScheme,
         null);
 }
Ejemplo n.º 2
0
        public async Task RealizarLogin(UsuarioRespostaLogin resposta)
        {
            var token = ObterTokenFormatado(resposta.AccessToken);

            var claims = new List <Claim>
            {
                new Claim("JWT", resposta.AccessToken),
                new Claim("RefreshToken", resposta.RefreshToken)
            };

            claims.AddRange(token.Claims);

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

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

            await _authenticationService.SignInAsync(
                _user.ObterHttpContext(),
                CookieAuthenticationDefaults.AuthenticationScheme,
                new ClaimsPrincipal(claimsIdentity),
                authProperties);
        }
        private string CodificarToken(ClaimsIdentity identityClaims)
        {
            #region Autenticação Syncrona

            /*
             * var tokenHandler = new JwtSecurityTokenHandler();
             * var key = Encoding.ASCII.GetBytes(_appSettings.Secret);
             *
             * var token = tokenHandler.CreateToken(new SecurityTokenDescriptor
             * {
             *  Issuer = _appSettings.Emissor,
             *  Audience = _appSettings.ValidoEm,
             *  Subject = identityClaims,
             *  Expires = DateTime.UtcNow.AddHours(_appSettings.ExpiracaoHoras),
             *  SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
             * });
             *
             * return tokenHandler.WriteToken(token);
             */
            #endregion

            var tokenHandler  = new JwtSecurityTokenHandler();
            var currentIssuer = $"{_aspNetUser.ObterHttpContext().Request.Scheme}://{_aspNetUser.ObterHttpContext().Request.Host}";
            var key           = _jwksService.GetCurrent();

            var token = tokenHandler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = currentIssuer,
                Subject            = identityClaims,
                Expires            = DateTime.UtcNow.AddHours(1),
                SigningCredentials = key
            });

            return(tokenHandler.WriteToken(token));
        }
Ejemplo n.º 4
0
        private string CodificarToken(ClaimsIdentity identityClaims)
        {
            var tokenHandler  = new JwtSecurityTokenHandler();
            var currentIssuer = $"{_aspNetUser.ObterHttpContext().Request.Scheme}://{_aspNetUser.ObterHttpContext().Request.Host}";
            var key           = _jwksService.GetCurrent();
            var token         = tokenHandler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = currentIssuer,
                Subject            = identityClaims,
                Expires            = DateTime.UtcNow.AddHours(1),
                SigningCredentials = key
            });

            return(tokenHandler.WriteToken(token));
        }
        private string GenerateToken(ClaimsIdentity identityClaims)
        {
            var tokenHandler  = new JwtSecurityTokenHandler();
            var currentIssuer = $"{_aspNetUser.ObterHttpContext().Request.Scheme}://{_aspNetUser.ObterHttpContext().Request.Host}";
            var key           = Encoding.ASCII.GetBytes(_appSettings.Secret);
            var token         = tokenHandler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = _appSettings.Emissor,
                Audience           = _appSettings.ValidoEm,
                Subject            = identityClaims,
                Expires            = DateTime.UtcNow.AddSeconds(_appSettings.Expiracao),
                SigningCredentials = new SigningCredentials(new SymmetricSecurityKey(key), SecurityAlgorithms.HmacSha256Signature)
            });

            return(tokenHandler.WriteToken(token));
        }
Ejemplo n.º 6
0
        private string CodificarToken(ClaimsIdentity claims)
        {
            var currentIssuer = $"{_aspNetUser.ObterHttpContext().Request.Scheme}://{_aspNetUser.ObterHttpContext().Request.Host}";
            //Para manipular o token
            var tokenHandle = new JwtSecurityTokenHandler();
            //Key
            var key = _jsonWebKeySetService.GetCurrentSigningCredentials();
            //Gerar o token
            var token = tokenHandle.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = currentIssuer,
                Subject            = claims,
                Expires            = DateTime.UtcNow.AddHours(1),
                SigningCredentials = key
            });
            //Escrever o token. Serializar no padrão da web
            var encodedToken = tokenHandle.WriteToken(token);

            return(encodedToken);
        }
Ejemplo n.º 7
0
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            var authorizationHeader = _user.ObterHttpContext().Request.Headers["Authorization"];

            if (!string.IsNullOrEmpty(authorizationHeader))
            {
                request.Headers.Add("Authorization", new List <string>()
                {
                    authorizationHeader
                });
            }
            var token = _user.ObterUserToken();

            if (token != null)
            {
                request.Headers.Authorization = new System.Net.Http.Headers.AuthenticationHeaderValue("Bearer", token);
            }
            return(base.SendAsync(request, cancellationToken));
        }