对于我的最后一个项目,我正在使用 https://github.com/hassox/rails_warden. 。它非常适合我的需求,除了我找不到实现remame_me的好方法。我知道,从安全角度来看,很难记住_me,所以我希望那里有一个项目可以完成这项工作。有人看到任何东西还是一个好主意?

有帮助吗?

解决方案

设计, 这是守望者顶部的身份验证解决方案,有一个 记住 执行。

其他提示

好的,这是我解决的方式

 # User model must have remember_token attribute

 # in config.ru
 use Rack::Cookies
 run MyApp

  # in lib/strategies.rb
  Strategies.add(:cookie) do
    def valid?
      env['rack.cookies']['user.remember.token']      
    end

    def authenticate!
      if user = User.find_by_remember_token(cookies['user.remember.token'])
        success! user
      else
        fail! "Could not log in"
      end
    end
  end

  Manager.after_authentication :scope => :user do |user, auth, opts|
    auth.env['rack.cookies']['user.remember.token'] = user.generate_remember_token! # sets its remember_token attribute to some large random value and returns the value
  end

  Manager.before_logout :scoper => :user do |user, auth, opts|
    user.update_attribute :remember_token, nil
  end
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top