我知道强制密码在用户创建它们一段时间后过期并不是Devise逻辑的一部分,我打算编写自己的代码来实现这一点。防止密码重复使用Devise
它也看起来像强迫用户不要重用最后一个X(在我的情况下10)密码将需要手动编码。
我的想法是,我会创建类似user_passwords表的东西,并在我的代码中使用逻辑来确保新密码与该用户的表中的任何内容不匹配。同时,我会将新密码插入表中,除非该用户已有10条记录,这意味着我会用新值覆盖最早的那条记录。表结构将是这样的:
user_passwords
- USER_ID
- encrypted_password
- created_at
如果任何人有一个更好,更优雅的解决方案来处理这个问题,我感谢你。
我认为“不要使用任何你最近的10个密码”是有些武断的,除非你有一个具体的商业原因。您可以轻松执行“不要使您的新密码与旧密码相同”。现实情况是,密码很难记住,而您将要驱动的行为是让用户在便签上记下密码。 – 2012-02-08 01:11:47
这是客户的实际需求。这是一家金融公司。 – 2012-02-08 01:15:41
然后,我不认为有比你提出的更优雅的解决方案... – 2012-02-08 01:19:17