Встречается на собеседованиях • сегодня

Что такое Refresh Token

Refresh Token — это долгоживущий токен, используемый для получения нового Access Token без повторной аутентификации пользователя. Он повышает безопасность, так как Access Token имеет короткий срок жизни, а Refresh Token позволяет его обновлять.

Пример работы:

  1. Пользователь логинится, получает Access Token (живёт 15 минут) и Refresh Token (живёт 7 дней).
  2. Когда Access Token истекает, клиент отправляет Refresh Token на /refresh эндпоинт.
  3. Сервер проверяет Refresh Token и выдаёт новый Access Token.

Пример кода (Flask):

python
from flask import Flask, jsonify, request
import jwt
import datetime

app = Flask(__name__)
SECRET_KEY = "your-secret-key"

# Генерация токенов
def generate_tokens(user_id):
    access_token = jwt.encode(
        {"user_id": user_id, "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=15)},
        SECRET_KEY,
    )
    refresh_token = jwt.encode(
        {"user_id": user_id, "exp": datetime.datetime.utcnow() + datetime.timedelta(days=7)},
        SECRET_KEY,
    )
    return {"access_token": access_token, "refresh_token": refresh_token}

# Обновление Access Token
@app.route('/refresh', methods=['POST'])
def refresh():
    refresh_token = request.json.get('refresh_token')
    try:
        data = jwt.decode(refresh_token, SECRET_KEY, algorithms=["HS256"])
        new_access_token = jwt.encode(
            {"user_id": data["user_id"], "exp": datetime.datetime.utcnow() + datetime.timedelta(minutes=15)},
            SECRET_KEY,
        )
        return jsonify({"access_token": new_access_token})
    except jwt.ExpiredSignatureError:
        return jsonify({"error": "Refresh Token expired"}), 401

Важно: Refresh Token должен храниться безопасно (HTTP-only cookie) и отзываться при logout.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы