6.7. Ответ об ошибке на запрос токена

Если запрос токена является недействительным или неавторизованным, сервер авторизации создает ответ об ошибке (раздел 11 [8]). В теле HTTP-ответа используется тип содержимого "application/json" с HTTP-ответом с кодом состояния 400 с заголовком "Bad Request".

В дополнение к кодам ошибок, определенным в пункте 6.4.2 [6], применяются следующие дополнительные коды ошибок:

- "authorization_pending": запрос авторизации ожидает рассмотрения, поскольку конечный пользователь еще не прошел аутентификацию;

- "slow_down": (аналогично "authorization_pending") запрос авторизации находится на рассмотрении, и опрос должен продолжаться, но интервал должен быть увеличен как минимум на 5 секунд для данного и всех последующих запросов;

- "expired_token": срок действия <auth_req_id> истек. Клиент должен сделать новый запрос аутентификации;

- "access_denied": пользователь отклонил запрос авторизации.

При определении ошибки необходимо учитывать следующие требования:

- в случае, когда <auth_req_id> недействителен или был выдан другому клиенту, сервер авторизации должен вернуть ошибку "invalid_grant";

- в случае, когда клиент опрашивает чаще, чем установленный интервал, сервер авторизации может вернуть ошибку "invalid_request";

- в случае, когда клиент получает ошибку "invalid_request", он не должен делать дальнейшие запросы с тем же значением <auth_req_id>;

- в случае, когда клиент зарегистрирован для использования режима Push, но вызывает конечную точку токена с типом разрешения на доступ "urn: openid: params: grant-type: ciba", сервер авторизации должен вернуть сообщение об ошибке, что запрошенная авторизация клиента не соответствует режиму Push;

- когда клиент получает код ответа 4xx с полезной нагрузкой JSON, он должен проверить полезную нагрузку, чтобы определить ошибку.