2011-04-26 101 views
0

我使用注册和登录http://ruby.railstutorial.org/实施没有任何宝石认证。但是,现在我试图通过向用户发送随机生成的URL来激活用户,我在这里遇到了麻烦。我搜索了网页,并且看到一些使用Authlogic的perishable_token生成这个的人,但是由于我根本没有使用过Authlogic,所以我想知道是否有一种方法可以在不使用任何其他宝石的情况下生成这个。有没有来自铁路专业人士的建议?由于Ruby on Rails:没有Authlogic的perishable_token?

回答

3

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

然后,您可以重写perishable_token的reader访问器以生成另一个令牌并更新用户模型。

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 

以上只是一些快速的伪代码,但应该得到重点。

+0

谢谢杰克,我会试试这个 – railslearner 2011-04-26 03:26:37

+0

它的工作完美。非常感谢 – railslearner 2011-04-27 19:02:41