在此处列出的设计源代码中: https ://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb
第 56 行究竟做了什么?换句话说,我不确定设计如何确定用户是否登录。
看起来它以用户范围调用warden.authenticate(假设用户是模型)
我是否也必须深入了解 Warden 代码库?
在此处列出的设计源代码中: https ://github.com/plataformatec/devise/blob/master/lib/devise/controllers/helpers.rb
第 56 行究竟做了什么?换句话说,我不确定设计如何确定用户是否登录。
看起来它以用户范围调用warden.authenticate(假设用户是模型)
我是否也必须深入了解 Warden 代码库?
设计将工作委托给监狱长。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