如何注册设计登录事件?
How to register devise login event?
我正在使用 Devise 和 Omniauth 提供通过 native(devise)、facebook 和 google+
的登录
用户理论上可以连续使用任何方式登录,我想注册最后一种认证方式。对于 Facebook 和 G+,我可以在我的用户 table 的 find_* 方法中记录它,但是 Devise 'native' auth 是一本合上的书。
我能想到的最佳方法是在登录之前更新控制器中的会话变量,然后使用 warden 身份验证回调或子类化会话控制器
如这里:Ruby on Rails Devise code after login
之后直接用授权类型更新用户,但看起来有点乱。
Devise 有一个您可以调用的方法,它将运行在您的用户模型中进行数据库身份验证后,您可以在此处更新属性。
class User < ActiveRecord::Base
...
devise :database_authenticatable, :omniauthable ....
...
def after_database_authentication
update_attribute(:auth_type, 'database')
end
...
end
我正在使用 Devise 和 Omniauth 提供通过 native(devise)、facebook 和 google+
的登录用户理论上可以连续使用任何方式登录,我想注册最后一种认证方式。对于 Facebook 和 G+,我可以在我的用户 table 的 find_* 方法中记录它,但是 Devise 'native' auth 是一本合上的书。
我能想到的最佳方法是在登录之前更新控制器中的会话变量,然后使用 warden 身份验证回调或子类化会话控制器
如这里:Ruby on Rails Devise code after login
之后直接用授权类型更新用户,但看起来有点乱。
Devise 有一个您可以调用的方法,它将运行在您的用户模型中进行数据库身份验证后,您可以在此处更新属性。
class User < ActiveRecord::Base
...
devise :database_authenticatable, :omniauthable ....
...
def after_database_authentication
update_attribute(:auth_type, 'database')
end
...
end