如何注册设计登录事件?

时间:2015-03-25 10:31:48

标签: ruby-on-rails facebook devise google-plus omniauth

我正在使用Devise和Omniauth通过原生(设计),脸书和谷歌+

提供登录

理论上,用户可以连续使用任何方法登录,我想注册最后一种身份验证方法。对于Facebook和G +,我可以在我的用户表上的find_ *方法中记录它,但是设计' native' auth是一本封闭的书。

我能想到的最好的方法是在登录之前更新控制器中的会话变量,然后使用warden身份验证回调或子类会话控制器

如下:Ruby on Rails Devise code after login

直接用auth类型更新用户,但看起来有点乱。

1 个答案:

答案 0 :(得分:1)

Devise有一个可以调用的方法,它将在用户模型中的数据库身份验证之后运行,然后您可以在此处更新属性。

class User < ActiveRecord::Base
...
devise :database_authenticatable, :omniauthable .... 
...
  def after_database_authentication
    update_attribute(:auth_type, 'database')
  end
...
end