예제 #1
0
        public DadosUsuario PostAutenticar(String emailFacebook, String token, [FromServices] ConfiguracaoAutorizacao configuracaoAutorizacao)
        {
            if (emailFacebook == "*****@*****.**" && !String.IsNullOrEmpty(token) && token == "EVENTOWEB-0192")
            {
                return(new DadosUsuario()
                {
                    Login = emailFacebook,
                    Nome = emailFacebook,
                    TokenApi = GerarTokenApi(configuracaoAutorizacao, emailFacebook)
                });
            }
            else
            {
                throw new ExcecaoAPI("Autenticacao", "Token incorreto ou usuário não existe.");
            }

            /*Usuario usuario = null;
             * if ((usuario = mAppUsuario.BuscarPeloLogin(emailFacebook)) != null &&
             *  !String.IsNullOrEmpty(token) && token == "EVENTOWEB-0192")
             * {
             *  return new DadosUsuario()
             *  {
             *      Login = emailFacebook,
             *      Nome = emailFacebook,
             *      TokenApi = GerarTokenApi(configuracaoAutorizacao, usuario.Login)
             *  };
             * }
             * else
             *  throw new ExcecaoAPI("Autenticacao", "Token incorreto ou usuário não existe.");*/
        }
예제 #2
0
        private string GerarTokenApi(ConfiguracaoAutorizacao configuracaoAutorizacao, string login)
        {
            ClaimsIdentity identidade = new ClaimsIdentity(
                new GenericIdentity(login, "Login"),
                new[] {
                new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString("N")),
                new Claim(JwtRegisteredClaimNames.UniqueName, login)
            }
                );

            DateTime dataCriacao   = DateTime.Now;
            DateTime dataExpiracao = dataCriacao +
                                     TimeSpan.FromSeconds(configuracaoAutorizacao.TempoSegExpirar);

            var handler       = new JwtSecurityTokenHandler();
            var securityToken = handler.CreateToken(new SecurityTokenDescriptor
            {
                Issuer             = configuracaoAutorizacao.Emissor,
                Audience           = configuracaoAutorizacao.Publico,
                SigningCredentials = configuracaoAutorizacao.CredenciasAssinatura,
                Subject            = identidade,
                NotBefore          = dataCriacao,
                Expires            = dataExpiracao
            });

            return(handler.WriteToken(securityToken));
        }
예제 #3
0
        public DadosUsuario PostAutenticar([FromBody] String token, [FromServices] ConfiguracaoAutorizacao configuracaoAutorizacao)
        {
            var usuario = ConsultarEmailUsuarioFacebook(token);

            if (usuario != null && mAppUsuario.BuscarPeloLogin(usuario.Login) != null)
            {
                usuario.TokenApi = GerarTokenApi(configuracaoAutorizacao, usuario.Login);
                return(usuario);
            }
            else
            {
                throw new ExcecaoAPI("Autenticacao", "Token incorreto ou usuário não existe.");
            }
        }