devise对`authenticate_user!`进行db调用

时间:2013-09-23 16:47:06

标签: ruby-on-rails devise

我们使用before_filter :authenticate_user

我想知道以下代码:

  def serialize_from_session(key, salt)
      record = to_adapter.get(key)
      record if record && record.authenticatable_salt == salt
    end

它在devise-3.1.0/lib/devise/models/authenticatable.rb 设计是否为每个请求调用数据库?或者我读错了什么?

1 个答案:

答案 0 :(得分:1)

是的,确实如此。

它将从会话中读取存储的用户数据(用户ID和身份验证盐),然后通过执行查找来验证数据库中的用户是否与此存储的数据匹配。第二部分就是这段代码的作用。