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