Ruby on Rails:没有 Authlogic 的 perishable_token?

Posted

技术标签:

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

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

【问题讨论】:

【参考方案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你可以先看看。

【讨论】:

以上是关于Ruby on Rails:没有 Authlogic 的 perishable_token?的主要内容,如果未能解决你的问题,请参考以下文章

Ruby on Rails:没有 Authlogic 的 perishable_token?

Ruby on Rails 4 中没有摘要的字体资源

markdown Módulo3 - Aprofundando-se没有Ruby on Rails

Django 有没有像 Ruby on Rails 有 Heroku 这样的东西

ruby/ruby on rails 内存泄漏检测

CKEditor的第二个实例没有保存到db | Ruby on Rails