Ruby-Devise采用多种形式登录

2017-11-17 10:55:26来源:oschina作者:ruby-p人点击

分享

以User的手机号/邮箱/用户名登录为例。


1.首先在app/models/user.rb中


(1)自定义变量


attr_accessor:login


(2)自定义一个方法来允许登录的条件


def self.find_for_database_authentication(allow_conditions)
conditions = allow_conditions.dup
if login = conditions.delete(:login)
where(conditions.to_h).where(["lower(name) = :value OR lower(email) = :value OR lower(phone) = :value", { :value => login.downcase }]).first
elsif conditions.has_key?(:name) || conditions.has_key?(:email) || conditions.has_key?(:phone)
where(conditions.to_h).first
end
end

2.在app/models/user.rb中加入


devise::authentication_keys =>:login.


这样就可以实现用多种形式登录了。希望能帮助大家!


相关文章

    无相关信息

最新文章

123

最新摄影

闪念基因

微信扫一扫

第七城市微信公众平台