我正在使用设计来验证Facebook的用户,我正在尝试设置Facebook取消授权的处理。
我有一个名为authorized
的属性的用户模型,当用于取消授权的facebook回调发生时,该属性会更新。所有这些都有效。
我想将warden策略子类化为包括检查用户的授权状态,但是我无法弄清楚哪个warden策略要子类化。
如果我删除了设计提供的所有其他身份验证选项,只需使用
devise :omniauthable, omniauth_providers: [ :facebook ]
我运行Warden::Strategies.send(:_strategies)
时没有定义看守策略。
我应该将哪种warden策略子类化以获得omniauth行为?
答案 0 :(得分:2)
我认为没有针对omniauth的具体策略。反正我也看不到一个。但是,如果您要检查每个请求的属性(例如,他们在登录时取消授权您的应用),那么您应该覆盖用户模型中的active_for_authentication?
。这被称为lib/devise/hooks/activatable.rb
中Warden钩子代码检查每个请求的一部分。不要忘记拨打super
并根据需要实施非活动消息。请参阅doc:
http://rubydoc.info/github/plataformatec/devise/master/Devise/Models/Authenticatable