Настройка стратегий надзирателей для omniauth

Я использую devise для аутентификации пользователей в Facebook и пытаюсь настроить обработку деавторизации в Facebook.

У меня есть модель пользователя с атрибутом authorized, который обновляется, когда происходит обратный вызов facebook для деавторизации. Все это работает.

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

Если я удалю все другие параметры аутентификации, предоставляемые устройством, и просто использую

devise :omniauthable, omniauth_providers: [ :facebook ]

когда я запускаю Warden::Strategies.send(:_strategies), стратегии надзирателей не определены.

Какую стратегию надзирателя мне следует разделить на подклассы, чтобы получить поведение omniauth?


person oolong    schedule 28.05.2014    source источник


Ответы (1)


Я не думаю, что для omniauth существует определенная стратегия. Я все равно не вижу ни одного. Однако, если вы хотите проверять атрибут в каждом запросе (например, они деавторизуют ваше приложение, когда вы вошли в него), вам следует вместо этого переопределить active_for_authentication? в своей модели пользователя. Это вызывается как часть проверки каждого запроса кодом хука Warden в lib/devise/hooks/activatable.rb. Не забудьте вызвать super, а также реализовать неактивное сообщение, если хотите. См. документ:

http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Authenticable

person Tim    schedule 30.05.2014
comment
Рад слышать это; Рад был помочь. - person Tim; 04.06.2014