Как получить доступ к идентификатору пользователя из cookie с помощью JavaScript: Rails, Devise, Page Caching - PullRequest
0 голосов
/ 21 сентября 2011

У меня есть различные галереи изображений для разных пользователей. По большей части полная страница может быть кэширована. Однако я также хочу следующие функции:

  1. Если пользователь вошел в систему и посетил свою галерею, то пользователь можно увидеть ссылку «x», которая перекрывает каждое изображение.

  2. Если пользователь вошел в чужую галерею, то он может см. накладки «большой палец вверх», «большой палец вниз», голосование по каждому изображению.

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

Подход, который я предложил, заключается в следующем:

  • В шаблоне erb на стороне сервера я всегда буду генерировать голосование ссылки и удалять ссылки независимо от статуса входа, но я буду иметь они скрыты с помощью CSS по умолчанию.
  • Я покажу их, используя js в зависимости от статуса пользователя.

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

Сработало бы, если бы у меня на кешированной странице был фрагмент javascript, который проверял наличие значения cookie, похожего на это:

  if ($.cookie("user_id") == 23) { //if user is owner of this gallery...
     //reveal delete links, hide voting links
  }

Я не хочу создавать что-то особенное, чтобы установить этот cookie ... должен уже существовать какой-то тип файла DEVISE cookie, верно? Как мне получить к нему доступ?

1 Ответ

0 голосов
/ 22 сентября 2011

Используйте $.cookie("user_id"), чтобы установить cookie, используйте $.cookie("user_id", "23"), чтобы установить cookie. Однако вам следует остерегаться злоупотреблений, не прошедших проверку подлинности: каждый запрос без учетных данных, требующий проверки подлинности, должен быть отклонен, иначе цель входа в систему будет отклонена.

Если вы хотите проверить наличие файлов cookie на вашем сайте, используйте этот букмарклет:

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