在我的应用程序中,我需要进行数据库身份验证,但没有密码。只需输入您的电话号码即可。当用户唱歌时,他输入电话号码,地址和姓名,没有密码。
这是真的吗?只是无法弄清楚如何制作它。
提前感谢您的帮助!
答案 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