Другое 401Средняя

Ошибка 401 Unauthorized: причины и способы восстановления доступа

Ошибка 401 Unauthorized означает отказ в доступе из-за проблем с аутентификацией. Вы узнаете причины и получите проверенные способы восстановить доступ к сервисам и API.

Обновлено 28 апреля 2026 г.
5-10 мин
Низкая
FixPedia Team
Применимо к:любые веб-приложенияREST APIсервисы с HTTP-аутентификацией

Что означает ошибка 401

Ошибка 401 Unauthorized означает, что сервер отказал в доступе, так как запрос не содержит валидных данных для аутентификации или они некорректны. Полный текст ответа часто выглядит так: 401 Unauthorized или HTTP 401 – Access is denied. Она появляется при обращении к веб-приложениям, API, админ-панелям и защищённым эндпоинтам, когда клиент не может подтвердить свою личность.

Причины возникновения

  • Отсутствует или неверно указан заголовок Authorization (например, Bearer или Basic).
  • Истёк срок действия токена доступа или refresh-токена.
  • Неверные или устаревшие cookies и сессия завершена.
  • Несовпадение системного времени на клиенте и сервере, из-за чего токен считается недействительным.
  • Пользователю недоступен конкретный ресурс из-за ограничений ролей или прав.
  • Прокси, VPN или межсетевой экран блокируют или изменяют заголовки авторизации.

Способы решения

Способ 1: Проверка и обновление заголовка Authorization

Убедитесь, что каждый запрос к защищённому эндпоинту включает корректный заголовок. Для Bearer-токена это выглядит так:

curl -H "Authorization: Bearer <ваш_токен>" https://api.example.com/protected

Если токен просрочен, запросите новый через эндпоинт обновления или повторный вход.

Способ 2: Очистка cookies и повторный вход

Устаревшие сессии часто вызывают 401. Удалите cookies для целевого домена и авторизуйтесь заново.

  • В браузере: Настройки → Конфиденциальность → Cookies → удалить cookies сайта.
  • В приложении: выполните выход и вход, чтобы обновить сессионные данные.

Способ 3: Синхронизация системного времени

Расхождение во времени делает токены недействительными. Синхронизируйте часы:

  • Windows:
    w32tm /resync
    
  • Linux/macOS:
    sudo timedatectl set-ntp true
    

После синхронизации повторите запрос.

Способ 4: Проверка прав и ролей

Даже при наличии токена пользователь может не иметь прав на ресурс. Убедитесь, что учётная запись включена в нужные роли или группы. В API это часто проверяется через права scopes или claims в токене.

Способ 5: Отладка через curl или Postman

Изолируйте проблему, отправив запрос вручную. Это поможет понять, где именно теряется авторизация:

curl -v -H "Authorization: Bearer <ваш_токен>" https://api.example.com/protected

Если ответ снова 401, проверьте сам токен и настройки сервера. Если ответ отличается, проблема может быть в клиентском коде или прокси.

Профилактика

  • Регулярно обновляйте токены и используйте refresh-токены с адекватным сроком жизни.
  • Не храните токены в незащищённых местах, например в localStorage без дополнительных мер защиты.
  • Следите за системным временем на серверах и клиентах, особенно при работе с JWT.
  • Используйте единый механизм авторизации (например, OAuth 2.0) и централизованное управление ролями.
  • Тестируйте API с актуальными токенами перед развёртыванием изменений.

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

Почему появляется 401 Unauthorized после успешного входа?
Влияет ли 401 на работу сервера?
Может ли VPN или прокси вызывать 401?
Как отличить 401 от 403 Forbidden?

Полезное

Проверка заголовка Authorization
Обновление cookies и сессии
Проверка прав и ролей
Проверка времени системы
Отладка через curl/Postman

Эта статья помогла вам решить проблему?