【问题标题】:Devise on Rails timeout on :token_authenticatable?在:token_authenticable 上设计 Rails 超时?
【发布时间】:2012-01-22 01:59:04
【问题描述】:

你知道如何在 Rails 的 devise 上配置超时 on:token_authenticable 策略吗?

我同时设置了 :timeoutable 和 :token_authenticable

 devise :database_authenticatable, :registerable,
           :recoverable, :trackable, :validatable, :timeoutable,
          :token_authenticatable, :lockable

如果我使用用户名和密码登录,则会正确考虑超时并要求我再次重新登录,而我在登录时设置的令牌没有给出任何超时并且它始终有效,直到我执行正确注销(因为我在销毁方法中设置了 current_user.reset_authentication_token!)。 是否有一种简单的方法可以设置令牌超时,但不会太侵入(即修改设计代码)或无需 hack(即有一个定期检查最后一次登录并在必要时重置令牌的 cron 作业)?

谢谢

【问题讨论】:

    标签: ruby-on-rails-3 devise


    【解决方案1】:

    我对 rake 任务做了类似的事情:

    namespace :app_name do
      desc "reset all auth_tokens"
      task :reset_auth => :environment do
        users = User.find(:all)
        users.each do |user|
          user.reset_authentication_token!
        end
      end
    end
    

    然后是cron:

    rake app_name:reset_auth
    

    【讨论】:

    • 寻找一种足够可行的方法。感谢代码示例,我也会这样实现的。
    猜你喜欢
    • 1970-01-01
    • 2012-02-09
    • 1970-01-01
    • 2013-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多