Как сохранить URL-параметр на страницах - PullRequest
3 голосов
/ 27 октября 2010

Я не хочу, чтобы разработчики, которые встраивали мое веб-приложение, могли передавать параметр в URL-адресе, например ?style=dark, который соответствующим образом изменит CSS.Есть ли лучший способ сохранить этот параметр при переходе пользователя, чем добавление ?style=dark ко всем ссылкам?

Я рассмотрел файлы cookie и т. Д., Но если один пользователь просматривает две страницы, которые встраивают мое приложение с разными темамитогда один переопределит другой.

Я использую Python / Django.

Ответы [ 3 ]

2 голосов
/ 28 октября 2010

Если вы не хотите ни использовать файлы cookie, ни сеансы и не хотите встраивать их в URL-адреса, единственные альтернативы, которые мне приходят в голову:

Первый наиболее общий: сначала используйте фиктивный домен.Вместо www.example.com используйте h ** p: //THEME.example.com/PATH.Это даже работает для HTTPS, если у вас есть подстановочный SSL для * .example.com.

Второй вариант - создать Basic-Auth-Handler, который использует Theme в качестве имени пользователя с фиктивным паролем.Тогда URL может выглядеть следующим образом:

h ** p: //THEME@www.example.com/PATH

Однако я НЕ уверен, что произойдет, если пользователь подключится к тому же сайтус двумя разными темами в случае Basic-Auth.Также несколько сложно сделать сайт доступным для поисковых систем, если он находится за обработчиком аутентификации.Это потому, что вы ДОЛЖНЫ иметь сегодня обработчик аутентификации, чтобы обойти защиту от фишинга в современных браузерах.

Обратите внимание, что с обоими методами вы можете легко иметь только один параметр.Пароль не учитывается, и существуют браузеры, которые не принимают SSL-сертификат с подстановочными знаками * .example.com для PARAM1.PARAM2.example.com.

0 голосов
/ 28 октября 2010

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

0 голосов
/ 27 октября 2010

Я не совсем уверен, но в любом случае вам придется передать эту переменную на ваш сайт. Я имею в виду, что нет никакой разницы, если вы добавите ?style=dark к вашим href или rel="dark" к вашим <a> для использования с javascript. имейте ввиду, что это всего лишь пример

Конечно, вы всегда можете поработать над этим AI , чтобы предсказать, что пользователь хотел в конкретный момент. хех

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...