新手问题 Rails 密码重置的实现方法

greenmoon55 · 2012年12月19日 · 最后由 greenmoon55 回复于 2012年12月21日 · 3076 次阅读

看了 RailsCasts #274,往 Users 表里加了两个 column:password_reset_token:string password_reset_sent_at:datetime,感觉密码重置并不常用,这样做不太好吧。我的想法是再建一个 password_reset 表,里面有 user_id,password_reset_token,password_reset_sent 这么几列。

刚才搜到了这个

def generate_token
  ActiveSupport::MessageVerifier.new(Rails.configuration.secret_token).generate([id, 1.day.from_now, password_digest])
end

这样就可以不用数据库存储了。

是往 Users 表里加两个列还是再建一个表,还是用最后这个不需要数据库的方法呢?我感觉最后这个放法挺好啊,大家觉得呢?

打个酱油,觉得两个都挺好- -

重置的过程和历史记录肯定要留着的,个人觉得新建表较好。表也讲究职责单一,不要一张表内容太多,职责太多。

都行,多一两个字段无所谓。个人趋向于直接保存到用户表中

#1 楼 @ethansure 囧。。没发现是你

最后还是决定单独存一个表,正在做。因为 MessageVerifier 的实现原理还没搞清楚。。

需要 登录 后方可回复, 如果你还没有账号请 注册新账号