2012-03-12 2 views
4

Я делаю букмарклет, который вызывает приложение Google App Engine. Приложение GAE использует информацию для входа в систему, которую я хочу хранить в букмарклет, поэтому, когда пользователь сначала щелкает букмарклет, он запрашивает информацию для входа, но со следующего раза автоматически передает его.хранить данные для bookmarklet

ответ

7

Сложность букмарклета, непосредственно хранящего данные, заключается в том, что он может хранить данные только в cookie или в localStore, оба из которых «принадлежат» к любой странице, на которой он в данный момент включен. Это означает, что он не будет работать снова в следующий раз, когда вы будете использовать его на другой странице, а также означает, что страница, на которой вы находитесь, может получить доступ к данным, что, как правило, очень плохо для безопасности.

Существует два основных способа, которыми обычно управляет ваша ситуация. Двумя основными способами являются:

1.) Используемое приложение позволяет пользователю войти в систему с помощью файла cookie. Информация для входа не сохраняется в файле cookie; только идентификатор сеанса. Это происходит, когда вы возвращаетесь на многие популярные веб-сайты, вам больше не нужно входить в систему. Очень часто эти типы закладок открывают небольшое всплывающее окно для пользователя, содержащего страницу из приложения. Если пользователь не вошел в систему, приложение сначала предложит пользователю войти в систему. Этот букмарклет фактически ничего не знает о входе или нет.

2.) Каждый букмарклет выполнен на заказ для каждого человека. Таким образом, мой букмарклет будет отличаться от вашего. Разница просто в том, что моя будет содержать мою регистрационную информацию в коде, а ваша будет содержать вашу регистрационную информацию в коде. Фактически, каждый из нас должен сначала войти в приложение, прежде чем мы сможем получить свой собственный персонализированный букмарклет.

Как правило, вариант 1 лучше и проще и безопаснее.

+1

Существует третий вариант. Вы используете ленивую регистрацию, чтобы создать нового пользователя в фоновом режиме, если пользователь вышел из системы. Когда пользователь возвращается на ваш сайт, у вас есть их логин и запрос на их данные, который был временно сохранен под ленивой учетной записью пользователя. У этого есть ловушка, что если сеанс тайм-аута или файлы cookie будут удалены, то пользователь не сможет заявить о своей активности - но пользователю не нужно входить в систему ... –

+0

Спасибо за объяснение, вариант 1 - это лучше всего подходит для меня, несмотря на отсутствие знаний javascript. – quantme

+0

Мне сложно понять, как работает метод 1. Скажем, я уже зарегистрировался через другую страницу. Как букмарклет получает идентификатор сеанса, чтобы он мог попасть на страницу? (И как получилось, если я удалю сервер xyz с любой страницы, cookie, который браузер знает для xyz, в любом случае не отправляется с этим запросом?) – Michael

0

Если я это правильно понимаю, это поможет вам. http://ajaxian.com/archives/whats-in-a-windowname

Он позволяет хранить данные в windowname в JS. Разрешая доступ к данным до 2 МБ (намного больше, чем файлы cookie), и я считаю, что их можно использовать на вкладках ...

Смежные вопросы