6.5.1.1. Особенности запроса токена в режиме Poll

Если клиент зарегистрирован для использования режима Poll, то он опрашивает конечную точку токена с интервалом, ограниченным сервером авторизации значением параметра ответа аутентификации <interval>. При этом сервер авторизации может осуществлять длительный опрос, когда сервер авторизации отвечает на запрос токена, только если результат аутентификации стал доступен или истекло время ожидания ответа. Для длительных опросов рекомендуется использовать интервал 30 секунд.

Примечание. Рекомендации по опросу приведены в подразделе 5.5 [RFC6202].

Клиенты должны быть готовы ждать ответа не менее 30 секунд при использовании режима Poll. Сервер авторизации должен ответить в течение не более 30 секунд, даже при использовании длительного опроса. Интервал опроса измеряется с момента отправки запроса Poll. Для осуществления длительного опроса сервер авторизации может отвечать медленнее, чем предусмотрено интервалом. Клиент не должен отправлять два перекрывающихся запроса с одним и тем же значением <auth_req_id> и ждать получения ответа на предыдущий запрос, прежде чем отправлять следующий запрос. В случае если ответ получен, а интервал прошел, клиент может немедленно отправить следующий запрос. Для управления данной ситуацией сервер авторизации возвращает HTTP "503" с заголовком "Retry-After".

Примечание. Подробная информация приведена в пункте 7.1.3 [RFC7231].

Примеры поведения клиента в зависимости от различных ответов сервера авторизации с учетом ожидания в течение пяти секунд:

- Длинный опрос. Клиент делает запрос токена, а сервер авторизации возвращает ошибку <authorization_pending> через 30 секунд. В этом случае клиент может сразу выполнить следующий запрос токена.

- Стандартный опрос. Клиент делает запрос токена, а сервер авторизации возвращает ошибку <authorization_pending> через две секунды. В этом случае клиент ждет три секунды, прежде чем сделать следующий запрос.

- Сервер авторизации реагирует медленнее 30 секунд. Клиент делает запрос токена, и сервер авторизации не возвращает ответ в течение 30 секунд. В этом случае клиент отменяет текущий запрос и выполняет новый.