HTTP определяет статус 401 Unauthorized для отсутствия аутентификации, но этот статус применяется только к HTTP-аутентификация. Какой статус я должен возвращать в системе на основе сеансовых файлов cookie, когда происходит несанкционированный запрос?
Код состояния HTTP для отсутствия аутентификации
Ответы (3)
Формально правильный ответ — 403 Forbidden. Это определяется как
Авторизация не поможет и запрос НЕ ДОЛЖЕН повторяться.
Запутанной частью может быть «Авторизация не поможет», но на самом деле они означают «HTTP-аутентификацию» (WWW-Authenticate)
403 я считаю технически правильным (и, вероятно, наиболее эффективным, если вы реализуете собственный API/протокол).
401 не подходит, поскольку он относится к авторизации с заголовком WWW-Authenticate, которым не является файл cookie сеанса.
Если это общедоступный веб-сайт, на котором вы пытаетесь запретить доступ на основе файла cookie сеанса, часто лучше всего использовать 200 с соответствующим телом, указывающим, что требуется вход в систему, или временное перенаправление 302 на страницу входа.
Вы можете использовать тестовое условие и передать
Код ошибки: 401.1 — Ошибка входа. Попытка входа не удалась, возможно, из-за недопустимого имени пользователя или пароля.
Который специально используется для неправильного пароля или несоответствия имени пользователя и пароля. Надеюсь, это поможет вам.