无需密码即可设计自定义身份验证

时间:2011-10-25 11:43:09

标签: ruby-on-rails devise

在我的应用程序中,我需要进行数据库身份验证,但没有密码。只需输入您的电话号码即可。当用户唱歌时,他输入电话号码,地址和姓名,没有密码。

这是真的吗?只是无法弄清楚如何制作它。

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:9)

像这样想:

在devise_no_pass.rb初始化程序中添加:

require 'devise/strategies/authenticatable'

module Devise
  module Strategies
    class DeviseNoPass < Authenticatable
      def authenticate!
        return super unless params[:customer_sign_in]
        customer = Customer.find_by_phone(params[:customer_sign_in]
        customer ? success!(customer) : raise
      end
    end
  end
end

Warden::Strategies.add(:devise_no_pass, Devise::Strategies::DeviseNoPass)

在devise.rb中:

    config.warden do |manager|
      manager.default_strategies(:scope => :customer).unshift :devise_no_pass
    end