> For the complete documentation index, see [llms.txt](https://docs.userauth.com.br/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.userauth.com.br/configurando-o-seu-userauth/escolha-as-suas-autenticacoes/opcoes-de-autenticacoes-avancadas/social-login-com-o-facebook.md).

# Social Login com o Facebook

## Selecionando método de autenticação <a href="#selecionando-metodo-de-autenticacao" id="selecionando-metodo-de-autenticacao"></a>

Inicialmente na guia de configuração do UserAuth, devemos configurar o acesso através do Facebook.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FSnY26anIEZTpcuKnPPjn%2Fimage.png?alt=media&amp;token=792e1a2a-c54b-4120-9cae-dab607291f2c" alt=""><figcaption></figcaption></figure>

## Adicionamos o app ID do Facebook <a href="#adicionamos-o-app-id-do-facebook" id="adicionamos-o-app-id-do-facebook"></a>

Também abaixo na configuração, definimos um Facebook ID, que pode ser obtido no link de developers do Facebook.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2Fs1nzoW1CnsLpC3O4JLDF%2Fimage.png?alt=media&amp;token=98d398a9-2001-4749-af54-bf7dfdb06ddb" alt=""><figcaption></figcaption></figure>

## Configurando app ID no Facebook <a href="#configurando-app-id-no-facebook" id="configurando-app-id-no-facebook"></a>

Na página dos developers, podemos seguir um modelo de configuração comum, utilizado normalmente na web, não esquecendo de configurar as URLs de política de privacidade e de termos de serviço. Ambas as URLs devem ser validas.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F18P2McQHgXhE6ABpI693%2Fimage.png?alt=media&amp;token=93cd67d5-75ea-4936-af2a-fa1bff8c73de" alt=""><figcaption></figcaption></figure>

E definir a URL do site, essa que deve ser a URL do captive portal.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FPjn36GvY4tcZY5SGRrTG%2Fimage.png?alt=media&amp;token=a4866f80-a85f-411e-b82b-6961378ef240" alt=""><figcaption></figcaption></figure>

## Criando liberações de acesso para autenticação <a href="#criando-liberacoes-de-acesso-para-autenticacao" id="criando-liberacoes-de-acesso-para-autenticacao"></a>

Em seguida, podemos criar um grupo de pré-autenticação, onde teremos uma política de acesso a esse grupo já pré-definidas, onde será possível efetuar a autenticação sem problemas, basta clicar no botão indicado como na imagem abaixo:

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FPe0mPbAVoqsfr0ppAsjO%2Fimage.png?alt=media&amp;token=3aec6a51-587d-4151-90b4-c21afc91de2c" alt=""><figcaption></figcaption></figure>

Podemos também estabelecer um tempo limite para os usuários temporários **(Byspass conn time)**, os quais serão gerados para que possam se autenticar nas redes sociais, junto a política já pré-definida. Ainda será possível ou não, aplicar um grupo após sua autenticação **(Force E2Guardian group)**, com políticas de acessos de sua preferência, ou seja, após esta autenticação bem sucedida, poderemos dizer que este usuários autenticado por redes sociais pertencem a um determinado grupo do webproxy.

Como podemos observar, ao clicar na opção acima, automaticamente é criado um grupo e uma ACL no E2Guardian.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FvayQZWa6XvgRJKpf0SEq%2Fimage.png?alt=media&amp;token=20dc1c5e-d7db-4055-b96f-407fac680a23" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FNGKFOi1W2mG26Rue1lHP%2Fimage.png?alt=media&amp;token=9463cf9f-fdb7-49b7-a115-ca0de056ec86" alt=""><figcaption></figcaption></figure>

Assim é liberado automaticamente os endereços necessários para que seja realizado a autenticação pelas redes sociais.

## Testes com autenticação com Facebook <a href="#testes-com-autenticacao-com-facebook" id="testes-com-autenticacao-com-facebook"></a>

Após configurado, podemos tentar efetuar uma conexão na web através de nossa máquina virtual. Podemos perceber que o mesmo já aparece a opção do Facebook acima.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FC7cv7gpy1wAT1gvWRK4x%2Fimage.png?alt=media&amp;token=26e01ca5-b66f-4e15-ba63-65afffa26c90" alt=""><figcaption></figcaption></figure>

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FrzdQ0dcjDUMPkD3sw1nA%2Fimage.png?alt=media&amp;token=4084b2aa-ad77-4339-866b-00417605db7a" alt=""><figcaption></figcaption></figure>

Quando algum dispositivo tentar realizar a autenticação pelo Facebook ele criará um usuário temporário para que haja conectividade parcial do dispositivo, aplicando as politicas de acesso do grupo criado com botão **“*****Create Social login group and ACL*****”**, liberando apenas o necessário para autenticação.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2Fi3g8xqdEadbsvj7vMv6U%2Fuser_autentica.png?alt=media&amp;token=11f3314c-f2b1-4c13-a039-c9e55c645607" alt=""><figcaption></figcaption></figure>

Esse usuário ficará ativo até o fim da autenticação ou o tempo limite configurado na opção **“*****bypass conn limit*****”** se exceder.

Após a autenticação, ele já disponibilizará o acesso através do perfil do Facebook, substituindo o usuário temporário pelo perfil da rede social.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2Fi89P5kfCM7YM6NKYw1Uz%2Fimage.png?alt=media&amp;token=1c7a307f-ca51-4563-b6de-b76d308003a3" alt=""><figcaption></figcaption></figure>

Na guia de conexões ativas, podemos verificar que ele já efetua a conexão do usuário, e quando executada a conexão, a ferramenta, pega o nome e sobrenome do usuário no Facebook, e substitui o espaço por ponto, dessa forma, facilita a criação de regras sobre os usuários que estão conectados.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FlDT83aBdjKOUqfNMYnL1%2Fuser_autentica.png?alt=media&amp;token=15aa4c01-3787-4ddb-aa8e-0d3cd5dc2cfd" alt=""><figcaption></figcaption></figure>

Também na ferramenta, possuímos a opção de bloquear todos os sites antes da pessoa se autenticar, mesmo que necessite do Facebook para essa autenticação, pois a ferramenta compreende que a conexão está sendo realizada por fora do próprio captive portal.

Porém algumas vezes, a liberação por login social acaba dando a liberdade de acesso a rede para muitos usuários desconhecidos, e caso a sua organização seja grande, acaba se tornando inviável avaliar todos os Facebooks e adicioná-los a um grupo, visto que, se a pessoa alterar o nome do Facebook, perde a conexão. Dessa forma foi implementada a opção de moderate login social, dentro do UserAuth.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F1rPNWIYPE7Bn1xPVpLfo%2Fimage.png?alt=media&amp;token=2dfe9101-b2aa-465c-841f-99536809f3bb" alt=""><figcaption></figcaption></figure>

Assim, quando efetuada a conexão através do "login social", a solicitação de conexão será encaminhada para uma aba de "login social moderation", onde um funcionário, por exemplo, pode efetuar a liberação a partir da solicitação de conexão, dessa forma, a liberação só é efetuada após alguém liberar.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FFg5AxcPcZulzc8Y70Fmj%2Fimage.png?alt=media&amp;token=3c0d092e-32b9-40d4-842b-5deb9978a9b5" alt=""><figcaption></figcaption></figure>

Então vamos testar. Tentando acessar de um site qualquer, já caímos na tela de login pelo Facebook. Ao efetuar a conexão pelo Facebook, ele já efetua a autenticação, e joga para uma tela de aguarde.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FN8IfFZ8pawtuLLpUCgKb%2Fuser_autentica.png?alt=media&amp;token=d3e9ac74-ce88-4bb0-bbce-d113981462e6" alt=""><figcaption></figcaption></figure>

Na guia do admin, já recebemos a solicitação de liberação. Vamos efetuar o primeiro teste rejeitando a conexão através.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2Fzj5aXJYIwN0wUoGwViYe%2Fuser_autentica.png?alt=media&amp;token=b9480525-be0a-4938-b08c-0f0d6bac9570" alt=""><figcaption></figcaption></figure>

Com a conexão rejeitada podemos verificar que o site já efetua o retorno a página inicial, informando que ouve a rejeição a conexão.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FxykWInZhYkBGtFi3r2P1%2Fimage.png?alt=media&amp;token=c3a840f6-cb83-43c4-a563-69f19d38f08f" alt=""><figcaption></figcaption></figure>

Dessa forma, ao atualizar a página, ela já nos disponibiliza a conexão novamente. Novamente o social é encaminhado ao moderador, vamos desta vez efetuar a liberação.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2F4aJ8kydWZUZSInGCtEt1%2Fuser_autentica.png?alt=media&amp;token=e8a3148f-9521-409f-865a-2380a3103b06" alt=""><figcaption></figcaption></figure>

Assim que liberado, o usuário já passa a acessar a rede normalmente.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FO5UaPGFeAggi1nU1MkUr%2Fimage.png?alt=media&amp;token=e7d928e6-1496-4847-ab5f-a67633f910fa" alt=""><figcaption></figcaption></figure>

Assim que conectado, o mesmo já aparece nas conexões ativas.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FIZPcNH3Sq83Ey7kKJmK8%2Fuser_autentica.png?alt=media&amp;token=26b233dc-799b-43c3-a56c-00626583a840" alt=""><figcaption></figcaption></figure>

## Banindo usuários por MAC <a href="#banindo-usuarios-por-mac" id="banindo-usuarios-por-mac"></a>

Agora, supondo que você não deseje que haja mais esta solicitação dessa pessoa, depois de várias solicitações negadas, vamos recarregar a nossa conexão e efetuar o banimento da mesma.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FZ4BYMHZftDtuyfqOTGmR%2Fuser_autentica.png?alt=media&amp;token=2981f03a-8732-42ab-a79b-d7be54e73849" alt=""><figcaption></figcaption></figure>

Assim que adicionado ao banned, o próprio UserAuth reconhece o MAC Address que está tentando efetuar a conexão e adiciona a guia Banned, essa que libera a opção de banir um MAC ou adicionar algumas contas com o **"nome.sobrenome\@redesocial"**. Por enquanto o pacote possui apenas o Facebook, mas assim que ela possuir outras, as mesmas já podem ser adicionadas.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FI6wPGcZp5CasvGpu8G2e%2Fuser_autentica.png?alt=media&amp;token=36a03bdf-eb09-4ba0-8135-61fa18966b0e" alt=""><figcaption></figcaption></figure>

Assim que banido, a tela do usuário já recebe essa informação.

## Banindo usuários por nome <a href="#banindo-usuarios-por-nome" id="banindo-usuarios-por-nome"></a>

Vamos efetuar a remoção do MAC address da regra de banimento, e agora bloquear o nosso usuário.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FCrBYbtJfkEFwWE7t0SVd%2Fimage.png?alt=media&amp;token=9cb9023b-5a6a-45f9-af3d-940fc500710d" alt=""><figcaption></figcaption></figure>

Na tela do usuário a opção de acessar com a media social já é disponibilizada, mas quando tentado acessar, o mesmo retorna com o erro, social account banned.

<figure><img src="https://1714437560-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FpDCDzvnBYNPCAsAfnRIZ%2Fuploads%2FJQfY6MzxQtBgwGplRtwO%2Fimage.png?alt=media&amp;token=7033eadc-34d7-4269-8424-40953138eaaf" alt=""><figcaption></figcaption></figure>
