Tokens de atualização e expiração
Alterne tokens de acesso sem exigir novo login.
Tokens de atualização e expiração é uma aula grátis de Flask Academy no CoddyKit. Esta é a aula 4 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de Flask Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de Flask Academy inclui 4 aulas no total.
Por que os tokens expiram
Um token roubado só é perigoso enquanto funciona. Dar a cada token de acesso uma expiração curta reduz essa janela de risco. ⏳
A declaração exp
A expiração fica na declaração exp do token, que é uma marca de tempo. Quando o relógio passa desse momento, o token é rejeitado, independentemente de qualquer outra coisa.
Defina a duração
Controle por quanto tempo os tokens de acesso permanecem válidos com JWT_ACCESS_TOKEN_EXPIRES. Um período curto, como 15 minutos, é um padrão sensato.
from datetime import timedelta
app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(minutes=15)O problema de fazer login novamente
Uma expiração curta é segura, mas incomoda se os usuários precisarem digitar a senha a cada 15 minutos. O token de atualização resolve exatamente esse problema.
Dois tokens, duas funções
Um token de acesso curto chama sua API; um token de atualização de longa duração serve apenas para solicitar novos tokens de acesso.
Emita ambos no login
No login, gere um token de acesso e um token de atualização juntos e depois devolva ambos ao cliente.
from flask_jwt_extended import create_refresh_token
rt = create_refresh_token(identity=user.id)Um endpoint de atualização
Adicione uma rota /refresh protegida por jwt_required(refresh=True) para que somente um token de atualização válido possa acessá-la.
@app.post("/refresh")
@jwt_required(refresh=True)
def refresh():
...Devolva um novo token de acesso
Dentro de /refresh, leia a identidade e gere um token de acesso totalmente novo. O usuário continua sem precisar digitar a senha novamente. 🔄
new = create_access_token(identity=get_jwt_identity())
return {"access_token": new}Tokens de atualização duram mais
Defina JWT_REFRESH_TOKEN_EXPIRES para dias ou semanas. Ele é exposto com menos frequência, então uma duração maior é uma compensação aceitável.
app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)Armazene o token de atualização com segurança
Como ele é poderoso, mantenha o token de atualização em um armazenamento seguro, nunca em um local que possa ser lido diretamente por JavaScript, e envie-o somente para /refresh.
Revogação de tokens
Para realmente desconectar alguém, adicione uma lista de bloqueio com os identificadores dos tokens que o servidor recusará. Esse é o único dado de estado de que a autenticação sem estado às vezes precisa.
Verificação rápida
Relembre a função de cada tipo de token.
Recapitulação
Mantenha os tokens de acesso curtos e combine-os com um token de atualização de longa duração, que obtém novos tokens em /refresh. Adicione uma lista de bloqueio para revogar tokens. ✅
Aprenda Python com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 30
- Aulas
- 120
Perguntas Frequentes
A aula “Tokens de atualização e expiração” é grátis?
Sim — o texto completo de “Tokens de atualização e expiração” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de Flask Academy, atualize para CoddyKit PRO. O curso de Flask Academy inclui 4 aulas no total.
O que vou aprender em “Tokens de atualização e expiração”?
Alterne tokens de acesso sem exigir novo login. Você pratica Flask Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar Flask Academy?
Nenhuma experiência prévia é necessária. Flask Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 4 de 4.
Quanto tempo leva a aula “Tokens de atualização e expiração”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de Flask Academy?
Sim. Cada aula de Flask Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Sessões versus tokens sem estado
- Emita tokens de acesso no login
- Proteja endpoints com jwt_required
- Tokens de atualização e expiração