如何注册设计登录事件?

问题描述:

我正在使用设计和Omniauth提供登录通过本机(设计),Facebook和谷歌+如何注册设计登录事件?

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

我能想到的最好的办法是更新控制器的会话变量只是登录,然后使用*长认证回调或子类的会话控制器

这里之前:Ruby on Rails Devise code after login

更新用户使用auth类型后,但似乎有点混乱。

Devise有一个方法,你可以调用它,它将在你的用户模型中的数据库认证之后运行,然后你可以在这里更新属性。

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

太棒了。非常感谢。 – Ian 2015-03-26 00:54:44