【问题标题】:Ruby on Rails: perishable_token without Authlogic?Ruby on Rails:没有 Authlogic 的 perishable_token?
【发布时间】:2011-08-12 16:31:44
【问题描述】:

我使用http://ruby.railstutorial.org/ 中实现的注册和登录,没有任何宝石进行身份验证。但是,现在我试图通过向用户发送随机生成的 URL 来激活用户,我在这里遇到了麻烦。我在网上搜索过,看到一些人使用 Authlogic 的 perishable_token 来生成它,但由于我根本没有使用过 Authlogic,我想知道是否有一种方法可以在不使用任何其他 gem 的情况下生成它。 Rails 专业人士有什么建议吗?谢谢

【问题讨论】:

    标签: ruby-on-rails authentication authlogic activation


    【解决方案1】:

    有很多方法可以实现这一点。您首先必须决定如何生成令牌。您可以简单地使用用户的一些数据(如电子邮件)和另一块种子数据(如 Time.now)创建一个 md5hash,并将其存储为用户的“perishable_token”。

    然后您可以覆盖 perishable_token 的读取器访问器以生成另一个令牌并更新用户模型。

    before_save :generate_perishable_token
    
    def generate_perishable_token
      self.perishable_token = Digest::MD5.hexdigest("#{Time.now}-#{self.email}")
    end
    
    def perishable_token
      generate_perishable_token
      save
    end
    

    以上只是一些快速的伪代码,但应该能够理解这一点。

    【讨论】:

    • 谢谢杰克,我会试试这个
    【解决方案2】:

    我想一个简单的方法是生成一个随机字符串/数字用作perishable_token

    a question about random string generation here你可以先看看。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 2011-04-07
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      相关资源
      最近更新 更多