Ruby on rails не очищает кеш браузера после окончания сессии
Я использую Gem Devise для обработки входа / выхода на моем веб-сайте. В клиенте я использую AngularJS кеш DSCacheFactory.
У меня проблема с кешем браузера или angularJS кешем. Это кэш все еще хранит старое значение, когда сессия закончена
Пример:
- логин пользователя A
- Выйти из системы пользователя A
- логин пользователя 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