Браузеры сбрасывают файлы cookie, установленные приложением
Это интересная проблема. Я сказал, чтобы ввести функцию в моем существующем приложении. Приложение должно получить согласие пользователя перед тем, как записать Cookie в пользовательскую систему. (Подразумевается, что мое приложение записывает несколько файлов cookie в пользовательской системе).
Таким образом, дизайн таков, что весь запрос к приложению перехватывается, для каждого запроса мы проверяем, есть ли флаг, который просит приложение записать cookie (этот флаг отправляется со специальной страницы, называемой IP), или он проверяет наличие специальный cookie, скажем, Consent cookie на компьютере пользователя.
Теперь, если приложение не видит согласие Cookie на компьютере пользователя, оно перенаправляет пользователя на IP со своим URL. На IP есть кнопка Accept Cookie. Если пользователь принимает cookie-файл, ajax-запрос отправляется на сервер, где код определяет флаг для записи cookie-файла и записывает cookie-файл в браузер пользователя.
Я вижу, что исполняется код для записи cookie, ожидаемый после этого для обработки запроса в обычном режиме. Но, к сожалению, он перенаправляет его обратно на IP.
У меня сильное чувство, что некоторые браузеры сбрасывают файлы cookie. Пожалуйста, предложите, что может быть не так. Пожалуйста, также дайте мне знать, как проверить в моем браузере, что он сбрасывает Cookies.
Я также чувствую, что это как-то связано с заголовками P3P. Пожалуйста помоги.
1 ответ
Там может быть две вещи:
- Вы будете перенаправлены на IP каждый раз, независимо от браузера.
- С несколькими браузерами вы получаете доступ к вашему приложению, а с остальными - нет.
В случае 1: Вам нужно добавить заголовок P3P в ответ. Пожалуйста, проверьте http://viralpatel.net/blogs/2008/12/how-to-set-third-party-cookies-with-iframe.html
В случае 2: Возможно, что некоторые браузеры, такие как последняя версия Mozilla Firefox(12), кэшируют статус ответа, если он перенаправлен. По умолчанию перенаправление - это постоянное перенаправление, то есть код состояния 302. В этом случае IP-адрес будет продолжать перенаправлять на себя в Mozilla.
Решение: Вам нужно использовать временное перенаправление, то есть код состояния 307.