【发布时间】:2012-02-08 00:42:51
【问题描述】:
我知道强制密码在用户创建密码后的一段时间后过期不是设计逻辑的一部分,我打算编写自己的代码来实现这一点。
看起来还需要手动编码强制用户不重复使用最后 X 个(在我的情况下为 10 个)密码之一。
我的想法是,我将创建一个类似于 user_passwords 表的东西,并在我的代码中使用逻辑来确保新密码与该用户表中的任何密码都不匹配。同时,我会将新密码插入表中,除非该用户已经有 10 条记录,这意味着我将用新值覆盖最旧的记录。表结构是这样的:
用户密码
- user_id
- 加密密码
- created_at
如果有人有更好、更优雅的解决方案来处理这个问题,我将不胜感激。
【问题讨论】:
-
我认为“不要使用你最后 10 个密码中的任何一个”有点武断,除非你有具体的商业原因。您可以轻松地强制执行“不要让新密码与旧密码相同”。现实情况是密码很难记住,而您要推动的行为是让用户在便笺上写下密码。
-
这是客户的实际需求。这是一家金融公司。
-
那么我认为没有比你提出的更优雅的解决方案了......
-
太棒了。用那个回答你自己的问题!
标签: ruby-on-rails devise