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?
markdown Módulo3 - Aprofundando-se没有Ruby on Rails