Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Corrigir problemas relacionados à autenticação da API #474

Closed
6 tasks done
turicas opened this issue Oct 10, 2020 · 0 comments
Closed
6 tasks done

Corrigir problemas relacionados à autenticação da API #474

turicas opened this issue Oct 10, 2020 · 0 comments
Assignees

Comments

@turicas
Copy link
Owner

turicas commented Oct 10, 2020

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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants