turicas / brasil.io

Backend do Brasil.IO (para código dos scripts de coleta de dados, veja o link na página de cada dataset)

Home Page:https://brasil.io/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Corrigir problemas relacionados à autenticação da API

turicas opened this issue · comments

Depois do PR #464, precisamos aparar várias pontas para somente depois liberar a API:

  • Alterar texto "Aqui você poderá criar e gerenciars suas chaves de API.......", colocando link para post no blog (que será publicado) sobre formas de acessar os dados.
  • Adicionar model Token no admin
  • Desabilitar captcha em localhost (mas não em teste), pois não dá pra criar token
  • Autenticar usuário na interface do DRF caso usuário esteja logado no sistema
  • Adicionar subdomínio api.brasil.io já com versionamento no endpoint, de forma que as seguintes URLs funcionem:
  • Corrigir problema cache (Django) versus autenticação: quando tem cache pro endpoint requisitado no Redis, mesmo que o usuário mande o token no cabeçalho Authorization, o backend já responde com o que está no cache e isso não deveria ser feito, pois assim perdemos o controle de rate limit do usuário (e mesmo que o token esteja errado, ele receberá uma resposta 200). Alguns detalhes importantes:
    • O core.middlewares.NotLoggedUserFetchFromCacheMiddleware tem
      request.user.is_authenticated como False mesmo que Authorization seja
      enviado.
    • Talvez os middlewares devam ficar na seguinte ordem: autenticação, rate limit e então cache. Dessa forma a requisição será barrada caso o token seja inválido, o rate limit irá funcionar e caso a requisição possa ser cacheada, o backend usará o cache e não processará tudo de novo.