В моем контроллере rails есть два типа обработчиков: один тип является обычным ответом с веб-страницей, другой предназначен для ответа на запросы $ http на получение от Angular и возвращает json для обработки кодом JavaScript страниц.
Я использую devise, и этот код находится в верхней части моего контроллера приложений.
protect_from_forgery
before_action :authenticate_user!
after_action :set_csrf_cookie
Проблема в том, что когда, например, логин устарел, я думаю, что authenticate_user возвращает мой "неавторизованный" вебстраницу для звонящего, а не json, который сообщал бы звонившему, что текущий пользователь больше не авторизован, и тогда я мог бы правильно обработать условие на стороне клиента.
Любые мысли об эффективном способе сделать это, без необходимости удалять authenticate_user! из контроллера приложений.
Большинство моих контроллеров имеют обработчики для примерно 15 маршрутов, около 50/50, которые предназначены для возврата json к вызовам ajax, а другие возвращают веб-страницы. Мне нравится безопасность, которую authenticate_user! в контроллере приложения предоставляет, и не решается удалить его и вместо этого должен иметь различный код для обеспечения безопасности в каждом из моих методов.
Спасибо.