Sistema CRUD de Biblioteca

Instituto Federal de Pernambuco - Campus Paulista

Diciplina: Desenvolvimento de Sistemas Web II

Desenvolvido por: BeatrizFS

Projeto: Sistema de gerenciamento de biblioteca

Passos para executar o projeto

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
  1. Crie um ambiente virtual. Na pasta do projeto:
python -m venv venv
  1. Ative o ambiente virtual
source venv/bin/activate
  1. Instale os requisitos
pip install -r requirements.txt
  1. 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

Atividade

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:

  1. 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)

  1. 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.

  2. 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' image

    • Em seguida, escolha a opção 'Consumidor' image

    • Dê um nome para a sua aplicação image

    • 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) image

    • 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.
      image

    • 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

image

  • 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.

image

image

  • 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/

image

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. image