Ruby on rails не очищает кеш браузера после окончания сессии

Я использую Gem Devise для обработки входа / выхода на моем веб-сайте. В клиенте я использую AngularJS кеш DSCacheFactory.

У меня проблема с кешем браузера или angularJS кешем. Это кэш все еще хранит старое значение, когда сессия закончена

Пример:

  1. логин пользователя A
  2. Выйти из системы пользователя A
  3. логин пользователя B веб-сайт показывает пользователя A.

Я ожидаю, что после входа пользователя B сайт показывает пользователя B

Angular DSCacheFactory просто очищает кеш браузера, когда они истекли.

Как я могу очистить DSCacheFactory пользователя A после входа в систему пользователя B (сессия заканчивается).

1 ответ

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

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

Если вы переопределите Devise::SessionsController и действие Create с этим кодом, вы должны заметить ожидаемый результат. Работает правильно с библиотекой угловых приборов

https://github.com/cloudspace/angular_devise

 def create
    if user_signed_in? && params[:user].present?
          sign_out(current_user)
    end
    super
  end
Другие вопросы по тегам