Instituto Federal de Pernambuco - Campus Paulista
Diciplina: Desenvolvimento de Sistemas Web II
Desenvolvido por: BeatrizFS
Projeto: Sistema de gerenciamento de biblioteca
O projeto já possui um banco de dados sqlite na pasta principal com com algumas informações salvas. Você pode usar o usuário de administação e também visualizar os livros que foram salvos no banco.
Senha do usuário com permissão de administração:
- Usuário: admin
- Senha: ifpepaulista
- Crie um ambiente virtual. Na pasta do projeto:
python -m venv venv
- Ative o ambiente virtual
source venv/bin/activate
- Instale os requisitos
pip install -r requirements.txt
- Entre na pasta do projeto e execute-o
python manage.py runserver_plus --cert cert.pem
O projeto vai estar disponível no https://127.0.0.1:8000 ou no https://dominio_definido:8000
Nesta atividade você precisa adicionar a autenticação com oauth do Google e do Facebook no projeto da biblioteca. Para isso siga os passos descritos abaixo:
- Crie uma entrada para um domínio interno na sua máquina, como indicado no passo 5 do exemplo de OAUTH. Crie o domínio com as iniciais de cada participante do projeto mais a adição do sufixo 'site.com'. Por exemplo, a dupla formada por Renan e Tom, teriam que adicionar o domínio 'rtsite.com' no seu arquivo de hosts. Se tudo estiver configurado corretamente, esses estudantes conseguirão acessar ao projeto no navegador através do https://rtsite.com/8000. Agora crie o seu domínio (baseado no nome dos participantes), configure localmente e tente acessá-lo. Só avance para a próxima atividade quando o projeto da biblioteca estiver acessível no domínio definido. A partir de agora, esse domínio será mencionado como 'dominio_definido'
Se o django informar que o domínio não é um 'allowed_hosts', adicione-o no settings.py. (Passo 6 do exemplo de OAUTH)
-
Crie um aplicativo no Google Developer Console seguindo os passos descritos a partir do passo 10. Tome cuidado para trocar a indicação de 'mysite.com' usado no exemplo para o domínio definido no passo anterior. Ao finalizar a criação, pegue o token e o secret e adicione nas suas respectivas variáveis. Teste a autenticação oauth na página de Login e se funcionar, siga para a próxima.
-
Agora você vai adicionar a autenticação via facebook em uma aplicação. Para fazer isso, siga os passos descritos abaixo:
-
Acesso ao site: https://developers.facebook.com/apps/?show_reminder=true e clique em 'Criar Aplicativo'
-
Na tela de adição de produtos, escolha a opção 'Login do Facebook' (a opção não está sendo exibida na imagem porque o print foi realizado após a escolha)
-
Já com o 'Login do Facebook' ativado, escolha a opção 'início rápido' no painel lateral. Clique na opção 'WEB', como indicado na seta.
-
Nela, digite o domínio fictício do seu site. Lembre-se que para isso funcionar, vocẽ precisa ter alterado o arquivo de 'hosts' do seu sistema operacional. Dessa forma, ele encaminhará a requisição para um domínio específico direto para o seu localhost. Adicione o seguinte padrão no campo, onde dominio_escolhido é o nome indicado no hostname do seu sistema operacional.
-
https://dominio_escolhido:8000
- Agora clique em configurações, no painel lateral. Em 'Básico' você vai obter o ID da aplicação e o SECRET. Salve essas informações para serem usadas após a etapa de criação do aplicativo no site do facebook.
- Por fim, após copiar as informações, adicione em configuraçõe do 'Login do Facebook' a url do redirecionamento (destaque na imagem). Adicione o seguinte padrão, onde dominio_definido é o nome indicado no hostname do seu sistema operacional na etapa 1 da ativididade.
https://dominio_definido:8000/social-auth/complete/facebook/
Agora no projeto django faça as seguintes adições:
- Adicionar o backend abaixo na lista de AUTHENTICATION_BACKENDS do arquivo settings.py:
social_core.backends.facebook.FacebookOAuth2
- Adicionar as variáveis abaixo com os dados obtidos no Facebook. As variáveis devem ficar no settings.py
SOCIAL_AUTH_FACEBOOK_KEY = "" #Colocar ID obtido no aplicativo do facebook
SOCIAL_AUTH_FACEBOOK_SECRET = "" #Colocar SECRET obtido no aplicativo do facebook
- Por fim, adicone o link para a página de login do facebook usando o redirecionamento url 'social:begin' no template de login (login.html)
<li class="facebook">
<a href="{% url 'social:begin' 'facebook' %}">Login com o Facebook </a>
</li>
- Certifique-se de que o urls.py principal da aplicação contém a linha abaixo no urlpatterns
path('social-auth/', include("social_django.urls"), name='social'),
- Teste o login com a conta do Facebook.
OPCIONAL:
Mude os links do login por Facebook e Google por imagens como as apresentadas abaixo.