Example #1
0
        public object Autenticar(

            [FromBody] AutenticarRequest request,
            [FromServices] SigningConfigurations signingConfigurations,
            [FromServices] TokenConfigurations tokenConfigurations)
        {
            bool credencialValidas      = false;
            AutenticarResponse response = _serviceUsuario.Autenticar(request);

            credencialValidas = response != null;

            if (credencialValidas)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(response.Id.ToString(), "Id"),
                    new[]
                {
                    new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                    new Claim("Usuario", JsonConvert.SerializeObject(response))     // guarda as informações do usuário na claim
                });

                DateTime dataCriacao   = DateTime.Now;
                DateTime dataExpiracao = dataCriacao +
                                         TimeSpan.FromSeconds(tokenConfigurations.Seconds);
                var handler = new JwtSecurityTokenHandler();

                //Criar o Token
                var securityToken = handler.CreateToken(new SecurityTokenDescriptor {
                    Issuer             = tokenConfigurations.Issuer,
                    Audience           = tokenConfigurations.Audience,
                    SigningCredentials = signingConfigurations.SigningCredentials,
                    Subject            = identity,
                    NotBefore          = dataCriacao,
                    Expires            = dataExpiracao
                });
                var token = handler.WriteToken(securityToken);

                return(new
                {
                    authenticated = true,
                    created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"),
                    expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"),
                    accessToken = token,
                    message = "Ok",
                    primeiroNomeDoPropriedade = response.PrimeiroNome
                });
            }
            else
            {
                return(new
                {
                    authenticated = false,
                    _serviceUsuario.Notifications
                });
            }
        }
        public async Task <IActionResult> Listar()
        {
            try
            {
                //Guid Idusuario = Guid.NewGuid(); // vai vir do Token
                string             usuarioClaims   = _httpContextAccessor.HttpContext.User.FindFirst("Usuario").Value;
                AutenticarResponse usuarioResposne = JsonConvert.DeserializeObject <AutenticarResponse>(usuarioClaims);

                var response = _serviceCanal.Listar(usuarioResposne.Id);
                return(await ResponseAsync(response, _serviceCanal));
            }
            catch (Exception ex)
            {
                return(await ResponseExceptionAsync(ex));
            }
        }
        public async Task <IActionResult> Adicionar([FromBody] AdicionarCanalRequest request)
        {
            try
            {
                //Guid Idusuario = Guid.NewGuid();
                string             usuarioClaims   = _httpContextAccessor.HttpContext.User.FindFirst("Usuario").Value;
                AutenticarResponse usuarioResposne = JsonConvert.DeserializeObject <AutenticarResponse>(usuarioClaims);


                var response = _serviceCanal.AdicionarCanal(request, usuarioResposne.Id);
                return(await ResponseAsync(response, _serviceCanal));
            }
            catch (Exception ex)
            {
                return(await ResponseExceptionAsync(ex));
            }
        }