Управление расширением Chrome / сессией веб-приложения - PullRequest
1 голос
/ 09 августа 2011

Я создаю расширение Chrome, а не веб-приложение Chrome.Это приложение содержит только файлы html, js, image и css.Приложение подключается к серверу для получения данных.Я решил сделать это, так как это уменьшит количество файлов, загружаемых пользователем.Используя Backbone.js, у меня в приложении есть архитектура MVC.Таким образом, приложение просто отправляет JSON.

Теперь, сказав это, мне нужно управление сеансом.Я планирую использовать аутентификацию Google, так как в организации есть Службы Google.Мне нужен метод, который, как только пользователь вошел в систему с помощью Google Auth сервер получает имя пользователя каждый раз, когда приложение делает запрос.

Это хорошая идея, если это возможно, добавить имя пользователя в заголовок запроса.Или я должен использовать куки?Кто-нибудь может сказать мне, как я могу использовать куки в этом случае?

Ответы [ 2 ]

3 голосов
/ 08 мая 2012

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

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

Просто следуйте этим шагам.

  1. На клиенте Каждый раз, когда пользователь обращается к вашему веб-приложению Chrome, вслепую отправляйте запросы XmlHttpRequest на ваш сервер, не беспокоясь об аутентификации, просто следите за ответом от сервера, который я опишу ниже.

  2. На сервере всякий раз, когда вы получаете запрос проверки правильности сеансов или куки-файлов сеанса. Если сеанс действителен, отправьте правильный ответ, если нет, отправьте ошибку, 401 или любой другой ответ, чтобы сообщить вашему клиенту, что сеанс недействителен. Лучше, если вы отправите код ошибки, такой как 401, с тех пор вы можете поместить универсальный скрипт в клиент, чтобы сообщить им, что они не вошли в систему.

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

  4. ВАЖНО : отображение кнопки выхода из системы, если пользователь вошел в систему.

Проверьте мою реализацию этого в моем расширении

1 голос
/ 10 августа 2011

Для получения справки по использованию проверки подлинности Google в вашем приложении ознакомьтесь с учебным пособием Google OAuth , в котором есть все, что вам нужно (у меня не было времени на его настройку).

Какдля управления сессиями.Реализация OAuth , используемая Google, сохраняет токены в localStorage .Кроме того, как кратко упомянуто в обзоре расширений , ожидается, что мы будем использовать localStorage для хранения данных.Таким образом, я предлагаю вам сохранить имя пользователя здесь, так как оно будет доступно в течение всего времени жизни приложения (пока оно не будет удалено).Однако вам может понадобиться управлять именем, хранящимся здесь, и подумать, что должно произойти, когда пользователи входят и выходят из системы.Это сказал;Я не уверен, что sessionStorage будет лучшим вариантом, поскольку я никогда не использовал его раньше, не говоря уже о расширении.

Примечание

localStorage и его аналоги хранят только строки, поэтому я предлагаю использовать оболочку, которая использует от JSON до parse и stringify для получения и установки значений соответственно.

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