удалить куки из другого домена - PullRequest
0 голосов
/ 26 января 2012

Я создаю систему SingleSignOn, и у меня есть один большой вопрос.

Допустим, у меня есть 3 домена - домен1 , домен2 и домен3

Я вошел во все эти домены.

Я хочу выйти из системы domain3 , а затем автоматически выйти из системы domain1 и domain2 .

Можно ли удалить некоторые файлы cookie в domain1 и domain2 , когда я нахожусь в domain3 ?

Решение состоит в том, чтобы перенаправить из одного домена в другой, но это уродливое решение, и я хотел бы сделать это четко.

Может быть, у вас есть идеи, как решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 26 января 2012

Это проблема с единым выходом или выходом из системы. Как правило, вы не можете удалять файлы cookie с доменов, отличных от того, который посещает пользователь в настоящее время (в противном случае вы можете, например, управлять файлами cookie Facebook). Тем не менее, я предполагаю, что у вас есть некоторый контроль над этими доменами, поэтому у вас есть несколько вариантов:

Опции на стороне клиента

Если домены являются поддоменами одного корневого домена, например,

  • billing.example.com
  • crm.example.com
  • reports.example.com

Вы можете указать cookie, который будет прикреплен к домену .example.com.

Если это невозможно (поскольку они являются доменами клиентов), но у вас есть их список, вы можете заставить процесс выхода из системы вызывать каждое из приложений по очереди (либо пиксель выхода из системы, либо выход из системы AJAX и т. Д., В зависимости от того, что вы можете поставить на другие домены). Это не безопасное решение, но лучше, чем отсутствие единого выхода.

Опции на стороне сервера

Способы сделать это на стороне сервера:

При выходе из любого из доменов аннулируйте его cookie, а затем либо перенаправьте его, либо перезвоните на центральный сервер единого входа, чтобы сообщить, что пользователь вышел из системы. Затем либо сервер единой регистрации должен выполнить вызов во все домены, в которые вошел пользователь, и попросить его выйти из системы, либо сделать так, чтобы домены регулярно возвращались к серверу единой регистрации для проверки истек ли единый вход в сеансы.

Для получения дополнительной информации см. Любое из следующего:

0 голосов
/ 26 января 2012

Нет, вы не можете удалить cookie.
Подход для единого выхода: Система SingleSignOn должна помнить зарегистрированных пользователей и приложений, в которых зарегистрирован пользователь, когда пользователь выходит из системы (или истекает срок действия билета / сеанса) Система SingleSignOn должна вызывать URL-адрес выхода из системы для всех приложений, в которых зарегистрирован пользователь. Этот подход реализован в Центральной службе аутентификации .

...