Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Удаление 25 летних cookies от Яндекс Почты (https://javascript.ru/forum/misc/41033-udalenie-25-letnikh-cookies-ot-yandeks-pochty.html)

glebbrain 29.08.2013 00:19

Удаление 25 летних cookies от Яндекс Почты
 
Здравствуйте, Гуру! Мне нужна ваша помощь :)

Постов в инете пишу мало, в основном все нахожу, но в этот раз ответа нет :(

Текущие положение дел:
Я делаю сайт для заказчика, в нем есть личный кабинет(ЛК), пользователи через него заходят в Яндекс почту.
Во время перехода производится автоматическая авторизация пользователя через API Яндекса. Страница почты открывается в новом окне. К домену .yandex.ru привязывается долго живущие cookie (время жизни: 25 лет), если не закрывать браузер и не выходить из почты, куки остаются и имеют след. имена: L, my, sessionid2, yandexuid, yp

Зачем нужно чтобы пользователь выходил с почты?(Уничтожение куков)
- Все документы и др. полезная инфа идет через корпоративную почту,
сайт является контролирующим ядром для сотрудников компании, поэтому обязательно все сотрудники должны пользоваться ЛК, т.е. заходить в почту через ЛК! А при существующим раскладе ЛК им нужен для единовременного входа в почту, это не правильно :(

Что нашел по данной теме:
- В документации к Яндекс API нет способа убивания сессии, но в самой почте есть ссылка:
http://passport.yandex.ru/passport?m...85700&global=1
mode=logout - выход с почты
yu - yandexuid, сохраненный в куках
global=1 - убивание сессии на всех устройствах

Если скопировать ссылку и вставить в адресную строку, то с почты выходит! Но для этого мне нужно получить yandexuid, вот на этом месте я и встал...

- Я выгрузил куки со страницы ЛК, там куков от яндекса нет
- Попытался убить долгоживущий токен, нарыл в документации к кукам,
что можно прописывать путь и домен при создании нового кука:
document.cookie = "name=L;domain=.yandex.ru;path=/;expires=Date.now()+1";

... не вышло, может не так понял документацию :(
- Прошелся по API яндекса еще раз, yandexuid формируется каждый раз при
регистрации(и живет сутки) или смене пола у пользователя :)
Каждый раз менять пол не могу это палево)))))

- Есть мысль: создать страницу с фреймом, во фрейм поместить почту, на саму страницу в head
повесить скрипт, отсчитывающий 2 часа, после чего обнуляет токены. Только у меня сомнения
не нарушит ли это работу почты до обнуления?

- Есть еще одна мысль: с помощью автокликера заходить на почты всех зареганых пользователей
и нажимать "Выход со всех устройств". Минус только один: нужен постоянно включенный комп.

- Ну и крайний случай: связаться с разработчиками Яндекс указать им проблему... может помогут... Но на рассмотрение может уйти много времени, а этот функционал должен работать к концу недели. (Знаю, виноват, дотянул до конца, думал что смогу решить...)

Пожалуйста, подскажите направление к правильному решению, если кто капался в этом)))

PS
Решение должно работать во всех браузерах начиная с IE 6.
Почты зареганых пользователей находятся на под домене Яндекс.
Сами пользователи выходить с почты не собираются и могут в ней работать еще 25 лет :(
Более подробно описать вид деятельности компании и уже написанный код не могу.

Яростный Меч 29.08.2013 13:14

Не совсем понял, зачем делать разлогин для яндексовой почты..

Несомненно здесь только одно: с сайта ЛК невозможно разлогинить яндекс.
Попробуй им написать (теоретически можно сделать урл в passport.yandex, который проверял бы реферер на совпадение с твоим, хотя я не в курсе, можно ли подделать реферер). Но далеко не факт, что это сделают, тем более в недалеком будущем.

rekzi 29.08.2013 13:33

Это невозможно. Просто напросто нет такой функциональности и навряд ли будет. С такой возможностью можно было бы легко блокировать доступ к ресурсу yandex.ru.

glebbrain 29.08.2013 14:46

Цитата:

Сообщение от Яростный Меч (Сообщение 269870)
Не совсем понял, зачем делать разлогин для яндексовой почты..

Для поднятия посещаемости сайта, и в ЛК большой функционал, но сотрудникам это ненужно, а нужно администрации для контроля сотрудников.

Цитата:

Сообщение от Яростный Меч (Сообщение 269870)
Несомненно здесь только одно: с сайта ЛК невозможно разлогинить яндекс.
Попробуй им написать (теоретически можно сделать урл в passport.yandex, который проверял бы реферер на совпадение с твоим, хотя я не в курсе, можно ли подделать реферер). Но далеко не факт, что это сделают, тем более в недалеком будущем.

Спасибо, тоже пришел к решению отписаться на Яндекс. Попросил их сделать 2х часовой токен. Говорят будет ответ в течении 3х дней. Сейчас в API только 2 токена: 30 секундный и 25 летний :)

keen 29.08.2013 16:02

а подсовывать юзерам ссылку на passport.yandex.ru/auth/logout (взято с потолка) не вариант?

Яростный Меч 29.08.2013 16:07

Цитата:

Сообщение от keen
взято с потолка

оно и видно ))

автор привел ссылку на разлогин, там должно быть правильное значение yandexuid, в чем и состоит загвоздка.

glebbrain 30.08.2013 17:35

Яндекс все еще молчит, но я нашел обходной путь: смена пароля на рандомный всем зареганным пользователям с использованием ссылки: https://pddimp.yandex.ru/edit_user.x...gin=&password=
Поместил ссылку в foreach по всем пользователям и кинул на файл cron задачу, теперь все пользователи вылетают с почты ровно в 24:00 ежедневно.
Конечно менять пароль не очень хорошо, да и пользователям он не особо нужен :), т.к. они входят в почту через ЛК...
Все еще жду оптимального решения от разработчиков Яндекс :)


Часовой пояс GMT +3, время: 05:58.