TGViewer
Тестировщик | Вопросы собесов Тестировщик | Вопросы собесов @easy_qa_ru · 12.2K subscribers
Post #2974 491
🤔 Как сервер проверит что ключ доступа соответствует?

Проверка ключа доступа сервером осуществляется с использованием различных методов аутентификации и валидации. Вот процесс проверки с объяснением:

🟠Получение ключа от клиента
Когда клиент отправляет запрос, он включает ключ доступа (например, в заголовке, параметрах запроса или теле).
GET /api/resource HTTP/1.1
Authorization: Bearer your_access_token


🟠Сопоставление ключа с базой данных
Сервер проверяет ключ, сравнивая его с сохраненными данными:
Где хранятся ключи? Обычно ключи хранятся в защищенной базе данных в виде:
- Оригинала (например, API-ключей).
- Хэша (например, для JWT или паролей, чтобы не хранить оригинальные данные).
Что проверяется?
- Существование ключа.
- Связанная с ним информация (например, пользователь, срок действия, права доступа).

🟠Проверка срока действия (Expiration Time)
Для токенов (например, JWT) или временных ключей сервер проверяет, не истек ли срок действия: Для API-ключей это может быть статическое поле "срок действия" в базе данных.
Для JWT срок действия зашит в самом токене в поле exp.

🟠Валидация подписи (для JWT или шифрованных ключей)
Если используется токен, сервер проверяет его подлинность с помощью подписи:
JWT: Сервер декодирует токен и проверяет подпись, используя секретный ключ (HS256) или открытый ключ (RS256). Если подпись невалидна, запрос отклоняется.
Зачем подпись?
Чтобы удостовериться, что токен был выдан сервером и не изменен.
Пример кода валидации JWT на Python с использованием библиотеки PyJWT
import jwt

SECRET_KEY = "your_secret_key"

def validate_jwt(token):
try:
payload = jwt.decode(token, SECRET_KEY, algorithms=["HS256"])
return payload # Возвращает данные токена, если он валиден
except jwt.ExpiredSignatureError:
return "Token expired"
except jwt.InvalidTokenError:
return "Invalid token"


🟠Проверка прав доступа
Сервер анализирует связанный с ключом контекст (например, роли или разрешения):
Пример: Пользователь с ключом KEY123 имеет доступ только к определенным данным или функциям.
Реализация: Хранение прав в базе данных или в самом токене (внутри payload).

🟠Ответ на основе результата проверки
Если ключ валиден, сервер разрешает доступ к ресурсу и возвращает данные. Если ключ недействителен (не существует, истек, не имеет прав), сервер возвращает ошибку, например:
401 Unauthorized (для отсутствия или невалидного ключа).
403 Forbidden (если прав недостаточно).

Ставь 👍 и забирай 📚 Базу знаний
  • 🔥 2
More from @easy_qa_ru
  1. Oct 4, 2026🤔 От какого вида тестирования бы отказался: smoke, regression, sanity? Отказываться не ст…
  2. Oct 4, 2026🤔 Что будет в билде на альфа-тестировании? Альфа-тестирование – это первая фаза тестирова…
  3. Oct 3, 2026Post #2976
  4. Oct 3, 2026🤔 Что такое эквивалентное разделение? Эквивалентное разделение (Equivalence Partitioning)…
  5. Oct 2, 2026🤔 Что включает в себя тестирование инсталляции? Тестирование установки включает в себя пр…
  6. Oct 2, 2026🤔 Что такое интеграционное тестирование? Это этап тестирования, на котором проверяется вз…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →