LE06 - Login, Cadastro e Recuperação de Tzeets

Para cada dia em atraso será descontado 0.5 pontos da nota da atividade.

Descrição:

Nessa atividade nós finalmente vamos começar a interagir com o backend. O backend que iremos utilizar foi criado usando a ferramenta Strapi. Você não precisará alterar o código do backend, mas precisará executá-lo na sua máquina local. Para isso clone o repositório do backend encontrado no GitHub.

O backend já possui um usuário com tzeets no banco de dados. Para logar usando esse usuário use as seguintes informações:

Login Senha Tipo de usuário
admin@mail.com Admin123456 Admin do Strapi
fulano@mail.com 123456 Usuário do Tzeeter

Primeiramente a sua missão é implementar o login e proteger as URL que só podem ser acessadas por usuários logados.

Um usuário não logado, não pode ser acessar a página Home ou a página de Profile. No entanto, ele poderia acessar a página de login e de signup.

Quando um usuário conseguir logar, ele deve ser direcionado ao Home e nesse caso ele deve ser capaz de ver os seus Tzeets que estarão armazenados no banco de dados.

Ainda nessa atividade, devemos possibilitar que um novo usuário se increva no Tzeeter utilizando o formulário desenvolvido na ativiade anterior.

A seguir temos a lista de endpoints que serão necessários nessa atividade e a modelagem do banco de dados do Tzeeter.

HTTP Method URL Descrição
POST /auth/local/ Autenticação
POST /auth/register Criação de um usuário
GET /users/me Recuperação do avatar
GET /tzeets Buscar tzeets de um usuário específico

Modelagem do banco da lista 07

DICAS:

  • Confira o Swagger do nosso backend para descobrir o formato de requisição e de resposta refenrente a cada endpoint. Para isso abra o arquivo index.html contido na pasta Swagger.

  • Para realizar o login é necessário enviar uma requisição POST para o endpoint /auth/local/. Em caso de sucesso, um JSON que com as informações do usuário autenticado será enviado de volta.
    • Atenção, este JSON não contém informaçõe de relacionamentos. Logo, ao logar, precisaremos de uma segunda requisção para recuperar: a lista de seguidores, a lista de quem estamos seguindo e a foto do usuário.
  • Para recuperar todas as informações de um usuário, incluido a relações, uma requisção do tipo GET de deve ser enviada para o endpoint /users/me. Aqui você precisá informar o campos que deseja popular.

⚠️ Executando o backend

Atenção

Depois de clonar o repositório do, precisamos adicionar algums chaves criptografadas (APP_KEYS) no arquivo de configuração .env

Siga os seguintes passos:

  1. Copie o arquivo chamado .env.example e salve-o como .env
  2. Gere as chaves através do comando openssl rand -base64 16, cada execução gera uma chave. Gere quatro chaves pelo menos.
  3. Copie essa chaves e atribua a variável APP_KEYS separando as chaves com vírgula
  4. Depois desses passos você poderá finalmente executar o Strapi. Para isso instale as dependências:

     npm install
     # or 
     yarn install
    
  5. Execute o backend:

     npm run develop
     # or
     yarn develop