Как я использую cookie через два различных домена?

холст смещения

Синий прямоугольник выше представляет порт просмотра (монитор).

Красный прямоугольник представляет холст, который в настоящее время выходит за пределы порта просмотра.

Когда вы масштабируете холст, как вы удерживаете красную точку в той же относительной позиции?

Давайте просто посмотрим на размер х:

Текущая ширина холста равна 100 = 30 + 50 + 20

Если мы масштабируем в 2 раза, текущая ширина становится 200 = 60 + 100 + 40; однако порт просмотра представляет только 50 из новой ширины 100: 200 = 60 + (25 + 50 + 25) + 40

Числа, которые вас действительно волнуют, это смещения x и y, которые позиционируют холст; в настоящее время смещение по оси х составляет -30. Новое смещение для сохранения красной точки в том же относительном положении после 2-кратной шкалы будет -85 = (-1) * (60 + 25).

Новая относительная позиция будет 110 = 60 + 25 + 25 (вторые 25 - половина размера порта обзора). Обратите внимание, что 55 x 2 = 110.

В коде:

    boundingBoxLeft = boundingBox.left;
    beginCanvasWidth = canvas.width;
    canvas.width = canvasWidth*scaleFactor;
    var scaleChange = canvas.width/beginCanvasWidth;

    var leftOffset = ((-1)*boundingBoxLeft*scaleChange) + 
            (((window.innerWidth*scaleChange) - window.innerWidth)/2);

23
задан danielrsmith 24 November 2008 в 19:17
поделиться

5 ответов

На обоих доменах поместите изображение или другой веб-элемент, который вытягивают от другого домена. Используйте URL, чтобы уведомить другой домен, что пользователь X находится на домене A, и позвольте домену B связать тот идентификатор пользователя с тем пользователем в их системе.

Это - немного комплекса для выполнения правильно, но если Вы продумаете его, то это удастся очень хорошо.

Vinko указывает в комментарии (Спасибо!), что я не должен принимать как очевидное, что Вы понимаете включенные угрозы безопасности. Если эта информация имеет какую-либо ценность для кого-либо, то необходимо удостовериться, что Вы используете надлежащее шифрование, аутентификацию, и т.д. чтобы не выпускать уязвимую информацию и избегать различных нападений (воспроизведение, человек в середине, и т.д.). Это не должно быть слишком обременительно, так как Вы управляете обоими веб-сайтами, и можно выбрать безопасный секретный ключ для обоих, так как коммуникация только идет между этими двумя серверами через этот специальный URL. Помните о нем все же.

-Adam

17
ответ дан 29 November 2019 в 02:54
поделиться

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

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

можно глобально переписать все ссылки на второй сайт, собираются нуждаться в информации о куки от первого сайта.

Вы сохранили бы все cookie от сайта-a до базы данных, которую они оба могут считать, тогда программно добавив идентификатор cookie querystring на всех ссылках на сайт-b, тогда Вы поиск, что идентификатор cookie и сбросил cookie под новым доменом.

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

1
ответ дан 29 November 2019 в 02:54
поделиться

Я не уверен в последствиях безопасности, но существует установка Apache, которая позволяет Вам изменять домен cookie.

# in httpd.conf (or equivalent)
php_value session.cookie_domain mydomain.com

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

существует также метод для установки направления переменных в PHP, описанной в http://us.php.net/manual/en/function.session-set-cookie-params.php . Документация не делает ссылки на способность или неспособность установить cookie на различном домене.

существует различное поток Переполнения стека по этой той же теме, но я не думаю, что этому когда-либо достаточно отвечали.

1
ответ дан 29 November 2019 в 02:54
поделиться

Ну, если Ваши домены являются просто различными субдоменами, Вы могли бы сделать это в простом способе путем создания .yourdomain.com cookie. Тогда cookie передается наряду со всеми запросами через все субдомены.

Дело не в этом простой, если Вы хотите совместно использовать cookie между различными доменами, поскольку браузеры рассматривают его как угрозу безопасности.

, Каков точный пример?

В случае некоторого программного обеспечения как Google Analytics и другие изображения отслеживания, и т.д. Вы могли бы быть вынуждены использовать заголовки P3P , чтобы позволить браузеру знать, что Вы не заботитесь о безопасности при отправке cookie. Тогда изображение запроса браузера получает cookie как часть ответа и также осматривает P3P. Если все в порядке это сохраняет cookie на жестком диске и в следующий раз, когда Вы запрашиваете изображение, которое находится на Вашем веб-сайте (но часть другой страницы доменов), браузер отправит cookie вперед. Но я предполагаю, что это не помогает;-)

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

1
ответ дан 29 November 2019 в 02:54
поделиться

Если у вас есть два сайта, использующих один и тот же домен, и вы хотите использовать файлы cookie для совместного использования, установите что-то подобное в своем файле settings.php для каждого домена:

ini_set('session.cookie_domain', '.EXAMPLE.com');

Убедитесь, что вы включили ведущий "." перед доменным именем, иначе оно не будет работать.

Это позволяет пользователям поддерживать статус входа между любыми сайтами, настроенными для файлов cookie всего домена.

Это также может иметь отрицательные побочные эффекты, поэтому не делайте этого, если вы знакомы со всеми файлами cookie, используемыми для сайтов, между которыми вы хотите обмениваться файлами cookie.

2
ответ дан 29 November 2019 в 02:54
поделиться
Другие вопросы по тегам:

Похожие вопросы: