Flask Academy · Aula

Tokens de atualização e expiração

Alterne tokens de acesso sem exigir novo login.

Aula 4 de 413 etapas

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. ✅

Grátis para começar

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

  1. Sessões versus tokens sem estado
  2. Emita tokens de acesso no login
  3. Proteja endpoints com jwt_required
  4. Tokens de atualização e expiração
← Voltar para Flask Academy