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

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

Для длительных опросов рекомендуется использовать интервал 30 секунд.

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

При использовании режима Poll клиентам рекомендуется ждать ответа не менее 30 секунд. Даже при использовании длительного опроса серверу авторизации рекомендуется ответить в течении 30 секунд.

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

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

Примеры поведения клиента в зависимости от ответов сервера авторизации (интервал опроса по умолчанию равен 5 секундам):

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

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

- сервер авторизации отвечает дольше 30 секунд: клиент передает запрос токена, а сервер авторизации не возвращает ответ в течение 30 секунд. В этом случае клиент может отменить текущий запрос и передать новый.