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:- https://brasil.io/api/dataset/covid19/ (atual)
- https://api.brasil.io/v1/dataset/covid19/ (nova, final)
- 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
comoFalse
mesmo queAuthorization
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.
- O