Ejemplo n.º 1
0
        public async Task <UsuarioSaida> RetornaUsuario(string login)
        {
            return(await Task <List <UsuarioSaida> > .Run(
                       () =>
            {
                UsuarioSaida saida = null;
                var usu = _Repositorio.Query(where : a => a.Login.ToUpper().Trim() == login.ToUpper().Trim()).FirstOrDefault();

                if (usu != null)
                {
                    saida = _mapper.Map <UsuarioSaida>(usu);
                }

                return saida;
            }));
        }
Ejemplo n.º 2
0
        private IActionResult CriarResponseTokenJwt(UsuarioSaida usuario, DateTime dataCriacaoToken, DateTime dataExpiracaoToken, ConfigurationHelper configHelper)
        {
            var identity = new ClaimsIdentity(
                new GenericIdentity(usuario.Nome),
                // Geração de claims. No contexto desse sistema, claims não precisaram ser criadas.
                new[] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                new Claim(JwtRegisteredClaimNames.UniqueName, usuario.Email),
                new Claim("Nome", usuario.Nome),
                new Claim("IdUsuario", usuario.Id.ToString())
            }
                );

            var jwtHandler = new JwtSecurityTokenHandler();

            // Configuração realizada, seguindo o artigo "ASP.NET Core 2.0: autenticação em APIs utilizando JWT"
            // (https://medium.com/@renato.groffe/asp-net-core-2-0-autentica%C3%A7%C3%A3o-em-apis-utilizando-jwt-json-web-tokens-4b1871efd)

            var key = new SymmetricSecurityKey(System.Text.Encoding.ASCII.GetBytes(configHelper.JwtTokenConfig.SecurityKey));

            var securityToken = jwtHandler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = configHelper.JwtTokenConfig.Issuer,
                Audience           = configHelper.JwtTokenConfig.Audience,
                SigningCredentials = new SigningCredentials(key, SecurityAlgorithms.HmacSha256),
                Subject            = identity,
                NotBefore          = dataCriacaoToken,
                Expires            = dataExpiracaoToken
            });

            // Cria o token JWT em formato de string
            var jwtToken = jwtHandler.WriteToken(securityToken);

            return(new ApiResult(new Saida(true, new[] { UsuarioMensagem.Usuario_Autenticado_Com_Sucesso }, new
            {
                DataCriacaoToken = dataCriacaoToken.ToString("dd/MM/yyyy HH:mm:ss"),
                DataExpiracaoToken = dataExpiracaoToken.ToString("dd/MM/yyyy HH:mm:ss"),
                Token = jwtToken,
            })));
        }
Ejemplo n.º 3
0
        private ISaida CriarResponseTokenJwt(UsuarioSaida usuario, DateTime dataCriacaoToken, DateTime dataExpiracaoToken, JwtTokenConfig tokenConfig)
        {
            var identity = new ClaimsIdentity(
                new GenericIdentity(usuario.Nome),
                // Geração de claims. No contexto desse sistema, claims não precisaram ser criadas.
                new[] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                new Claim(JwtRegisteredClaimNames.UniqueName, usuario.Email),
                new Claim("IdUsuario", usuario.Id.ToString())
            }
                // Adiciona as perissões de acesso do usuário
                .Union(usuario.PermissoesAcesso.Select(x => new Claim(x, x)))
                );

            var jwtHandler = new JwtSecurityTokenHandler();

            var securityToken = jwtHandler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = tokenConfig.Issuer,
                Audience           = tokenConfig.Audience,
                SigningCredentials = tokenConfig.SigningCredentials,
                Subject            = identity,
                NotBefore          = dataCriacaoToken,
                Expires            = dataExpiracaoToken
            });

            // Cria o token JWT em formato de string
            var jwtToken = jwtHandler.WriteToken(securityToken);

            return(new Saida(true, new[] { UsuarioMensagem.Usuario_Autenticado_Com_Sucesso }, new
            {
                DataCriacaoToken = dataCriacaoToken,
                DataExpiracaoToken = dataExpiracaoToken,
                Token = jwtToken,
            }));
        }