30 ноября 2011 г.

Как, наверное, уже многие знают, в связи с законопроектом от 25 марта 2011 года в России теперь отменяется переход между "зимним" и "летним" временем. Это налагает много новых условий на уже устоявшуюся систему взаимодействий.

Возможно, кто-то уже сталкивался с проблемой. Я столкнулся с ней в Google Chrome. Некоторые расширения используют возможности доступа к сервисам Google (например, Google Docs, Tasks и прочее). Авторизация в них происходит по открытому протоколу OAuth. В параметрах запроса передается текущий timestamp, который берется с учетом текущего времени на компьютере пользователя и сравнивается с timestamp сервера+смещение от UTC в настройках аккаунта Google.

Но вот любопытная вещь: раньше при смене "зимнего" и "летнего" времени смещение от UTC уменьшалось или увеличивалось. Например, я нахожусь в часовом поясе YEKT (Екатеринбургское время), время которого до марта 2011 зимой было UTC+5, а летом - UTC+6. В настройках Windows часовой пояс никогда не менялся и везде шел как (UTC+5) Екатеринбург. Но теперь после принятия закона, Екатеринбургский пояс имеет постоянное UTC+6, а в настройках Windows так и стоит (UTC+5) Екатеринбург. В итоге разница в час не дает авторизоваться через OAuth и расширения Google Chrome так и висят, как правило, с надписью "Redirecting...". Если заглянуть в вывод консоли, то можно увидеть ошибки "Failed to load resource: the server responded with a status of 400 (Bad Request)" и "Uncaught Error: Fetching request token failed. Status 400". Выход из этой ситуации: сменить часовой пояс в настройках Windows на тот, что был раньше при "летнем" времени (для меня UTC+6).

P.S. Не забудьте убрать галку "Автоматический переход на летнее время и обратно" если она есть.

Автор: Артур Минимулин ⚫ 30 ноября 2011 г.Тэги: Софт, Конфигурация, Google