Persistent API keys
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 5/5
- Tempo estimado
- Mais de uma semana
- Facilidade para iniciantes
- 25/100
- Tipo de issue
- Funcionalidade
- Clareza
- Precisa de esclarecimento
- Status de atividade
- Estagnada
- Domínio
- api, authentication
Direção de pesquisa
Nenhum arquivo do repositório, teste ou ponto de entrada é identificado na issue; comece pela configuração de autenticação do fastapi-users vinculada na descrição e rastreie o fluxo de login JWT existente. Defina o modelo de chaves persistentes, a revogação, a expiração e os scopes opcionais e o fluxo de troca, fazendo com que a renovação de JWT de curta duração funcione tanto para login interativo quanto para login não interativo.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
At the moment, a user can login and get a JWT token. These tokens aren't stored in the database and have a baked-in expiry time. They're used for temporary sessions, typically by web browsers. This is fine and we'll definitely need this kind of tokens, but it's not designed to be used for automation tools that use the API continuously such as pipeline services.
In addition to the JWT, we should create another kind of tokens which we might call "API access keys". These would be stored in the database and could be revoked by the user. They may also have an expiry date and scopes to fine-tune the operations that can be performed with them. This is how most web APIs work, with persistent credentials for this kind of use-case. I don't think fastapi-users can support both, but it can support one or the other:
https://fastapi-users.github.io/fastapi-users/10.0/configuration/authentication/
In our particular case, I would like to suggest that we use the persistent API keys as a way to get a temporary JWT token. So a user can interactively login with a username / password interactive form or non-interactively by sending an access token. Then a short-lived JWT token is generated (say, valid for 1h) and when it expires a new one needs to be generated.
- Linguagem predominante
- Python
- Estrelas
- 10
- Forks
- 21
- Merge médio
- 22min
- PRs com merge (30d)
- 1
Preparar o ambiente
- Inclui um Dockerfile ou arquivo Docker Compose
- Sem modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de kernelci/kernelci-api
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 45/100
kernelci/kernelci-api#706 ·
-
Components/Maestro/API/Local instance says GET /latest/ should return some JSON, but it doesn'tTalvez livre de novo Um pull request para esta issue foi fechado sem ser mesclado. Abertadocumentation
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
kernelci/kernelci-api#632 · 1 comentário ·
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
kernelci/kernelci-api#629 ·
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
kernelci/kernelci-api#608 ·
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 35/100
kernelci/kernelci-api#597 · 2 comentários ·
Todas as issues de kernelci/kernelci-api
Issues semelhantes
-
Link Checker ReportAbertaautomated issue report
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 85/100
RapidAI/RapidOCRDocs#119 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 70/100
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
btclib-org/btclib-node#1833 ·
Mantenedores costumam responder em até 1 dia
-
IRIS reader: no-data velocity bins (DB_VEL, DB_VELC) returned as 0.0 m/s instead of NaNTalvez já em andamento @syedhamidali assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 80/100
elodin-sys/elodin#890 ·
Mantenedores costumam responder em até 1 dia