2015-03-25 112 views
0

我正在使用設計和Omniauth提供登錄通過本機(設計),Facebook和谷歌+如何註冊設計登錄事件?

用戶理論上可以用任何方法連續登錄,我想註冊最後一種身份驗證方法。對於Facebook和G +,我可以將它記錄在我用戶表的find_ *方法中,但Devise'native'auth是一本封閉的書。

我能想到的最好的辦法是更新控制器的會話變量只是登錄,然後使用監獄長認證回調或子類的會話控制器

這裏之前:Ruby on Rails Devise code after login

更新用戶使用auth類型後,但似乎有點混亂。

回答

1

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