Flask Academy · Урок

Токены обновления и срок действия

Обновляйте токены доступа без повторного входа.

Урок 4 из 413 шагов

«Токены обновления и срок действия» — бесплатный урок Flask Academy на CoddyKit. Это урок 4 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Flask Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Flask Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Why Tokens Expire

A stolen token is dangerous only while it works. Giving every access token a short expiry shrinks that window of risk. ⏳

The exp Claim

Expiry lives in the token's exp claim, a timestamp. Once the clock passes it, the token is rejected no matter what.

Set the Lifetime

Control how long access tokens last with JWT_ACCESS_TOKEN_EXPIRES. A short span like 15 minutes is a sensible default.

from datetime import timedelta
app.config["JWT_ACCESS_TOKEN_EXPIRES"] = timedelta(minutes=15)

The Re-Login Problem

Short expiry is safe but annoying if users must type their password every 15 minutes. The refresh token solves exactly this.

Two Tokens, Two Jobs

A short access token calls your API; a long-lived refresh token does nothing but request fresh access tokens.

Issue Both at Login

At login, mint an access token and a refresh token together, then return both to the client.

from flask_jwt_extended import create_refresh_token
rt = create_refresh_token(identity=user.id)

A Refresh Endpoint

Add a /refresh route guarded by jwt_required(refresh=True) so only a valid refresh token can reach it.

@app.post("/refresh")
@jwt_required(refresh=True)
def refresh():
    ...

Hand Back a New Access Token

Inside /refresh, read the identity and mint a brand-new access token. The user keeps going without retyping a password. 🔄

new = create_access_token(identity=get_jwt_identity())
return {"access_token": new}

Refresh Tokens Live Longer

Set JWT_REFRESH_TOKEN_EXPIRES to days or weeks. It is exposed less often, so a longer life is an acceptable trade.

app.config["JWT_REFRESH_TOKEN_EXPIRES"] = timedelta(days=30)

Store the Refresh Token Safely

Because it is powerful, keep the refresh token in secure storage, never in plain JavaScript-readable space, and send it only to /refresh.

Revoking Tokens

To truly log someone out, add a blocklist of token ids the server refuses. This is the one bit of state stateless auth sometimes needs.

Quick Check

Recall the job each token type does.

Recap

Keep access tokens short and pair them with a long-lived refresh token that buys new ones at /refresh. Add a blocklist to revoke. ✅

Можно начать бесплатно

Изучай Python с ИИ-репетитором — бесплатно

Пиши и запускай код прямо в браузере, получай мгновенную помощь от ИИ-репетитора 24/7 и продолжи учиться на сайте или в приложении.

Курсы
30
Уроки
120

Часто задаваемые вопросы

Урок «Токены обновления и срок действия» бесплатный?

Да — полный текст урока «Токены обновления и срок действия» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Flask Academy, подпишись на CoddyKit PRO. Курс Flask Academy содержит 4 уроков всего.

Чему я научусь в уроке «Токены обновления и срок действия»?

Обновляйте токены доступа без повторного входа. Ты практикуешь Flask Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Flask Academy?

Предыдущий опыт не требуется. Flask Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 4 из 4.

Сколько времени занимает урок «Токены обновления и срок действия»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Flask Academy?

Да. Каждый урок Flask Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Сеансы и токены без состояния
  2. Выдача токенов доступа при входе
  3. Защита конечных точек с помощью jwt_required
  4. Токены обновления и срок действия
← Назад к Flask Academy