在此处列出的设计源代码中: https://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb
第56行究竟做了什么?换句话说,我不确定如何设定用户是否已登录。
它看起来像用户的范围调用warden.authenticate(前提是用户就是模型)
我是否也必须深入研究Warden代码库?
答案 0 :(得分:3)
设计委托人的工作。 Warden检查用户名和密码是否有效。
Warden::Strategies.add(:my_strategy) do
def valid?
params[:username] && params[:password]
end
def authenticate!
u = User.find_by_username_and_password(
params[:username],
params[:password] # you should encrypt this. ;)
)
u.nil? ? fail!("Couldn't log in") : success!(u)
end
end