0
在我的authlogic中,我試圖傳遞三個參數來驗證用戶,即(email,dob,passowrd),因爲電子郵件地址在系統中並不是唯一的。Rails 3 + Authlogic +通過驗證用戶的三個參數
但我沒有辦法驗證它,因爲Authlogic需要兩個參數來創建會話。
在我的authlogic中,我試圖傳遞三個參數來驗證用戶,即(email,dob,passowrd),因爲電子郵件地址在系統中並不是唯一的。Rails 3 + Authlogic +通過驗證用戶的三個參數
但我沒有辦法驗證它,因爲Authlogic需要兩個參數來創建會話。
最後,我完成了這個實現。
步驟執行此操作: - :在UserSessionModel
class UserLoginSession < Authlogic::Session::Base
find_by_login_method :find_by_user_email_or_date_of_birth
end
login = {:dob => dob_date, :email => primary_email }
@user_exist = UserSession.new(:email => login, :password => password)
if [email protected]
redirect_to "/UserDashboard"
return
end
2步:更改
步驟1在我們的控制器(例如,class UserSessionsController < ApplicationController
)
步驟3:在的usermodel
變化class User < ActiveRecord::Base
acts_as_authentic do |c|
c.login_field = :email # email is the login field
c.validate_login_field = false
# There is no login field, so don't validate it
c.validations_scope = :dob
end
def self.find_by_user_email_or_date_of_birth(login)
dob = login[:dob]
primary_email = login[:email]
find_by_email_and_dob(primary_email, dob)
end
end
這是在使用authlogic進行認證,以提供3個參數的方式之一。
你可以發佈多一點你的代碼? – sunnyrjuneja