Найкраще, що я можу запропонувати - це код стану HTTP 401 із заголовком WWW-Authenticate.
Проблема з 403 запитами полягає у RFC 2616, яка говорить: "Авторизація не допоможе, і запит НЕ ПОВИНЕН повторюватися." (тобто не має значення, автентифіковані ви чи ні, ви ніколи не отримаєте доступ до цього ресурсу).
Проблема із запитом 401 полягає в тому, що вони "ПОВИННІ включати поле заголовка автентифікації WWW". Як хтось зазначав , не видається порушенням специфікації використання користувацького значення в заголовку WWW-Authenticate.
Я не бачу жодної причини в RFC 2617, чому статус HTTP 401 у поєднанні зі спеціальним заголовком автентифікації WWW, як це, не буде нормальним:
WWW-Authenticate: MyAuthScheme realm="http://example.com"
Специфікація oAuth насправді, здається, робить саме це, оскільки вони рекомендують це (хоча вони, на мою думку, мають дивну інтерпретацію RFC):
WWW-Authenticate: OAuth realm="http://server.example.com/"
RFC, здається, не є САНКЦІОНОВАНИМ, але насправді я не бачу, що це заборонено (воно, здається, не суперечить жодним умовам ПОВИННО або НЕ ПОВИННО, ПОВИННО чи НЕ ПОВИННО).
Я хотів би, щоб був більш конкретний код стану HTTP для таймаутів і для таких речей, як маркери CSRF, недійсні, щоб це було зрозуміліше.