设计 - 在密码消息之前显示锁定的消息

时间:2017-10-18 20:59:26

标签: ruby-on-rails security authentication devise

我试图在Devise中实现可锁定模块。我想设置它,以便在帐户被锁定时,无论密码是否正确,它都会显示锁定的消息。只要尝试次数高于最大尝试次数,在database_authenticatable之前导入可锁定就会产生所需的行为,但还有其他原因可能导致帐户被锁定。我已经覆盖#unauthenticated_message以便它返回:#access_locked时被锁定?是的,但这似乎没有做任何事情。有没有办法让这种情况发生?

看起来Devise的标准行为不是要揭示帐户的锁定状态,除非密码是正确的,因为这个帖子辩称:https://groups.google.com/forum/#!topic/plataformatec-devise/8BWkoYf-uy8所以要阻止请求让我证明我的推理是正确的这对我来说似乎不对。在我看来,锁定帐户的重点是避免密码枚举。如果有人知道我的网站上注册了特定的电子邮件,我真的不在乎(特别是因为无论如何都可以在用户创建页面上进行枚举),但为什么要给某人无限制的猜测密码呢?我很容易被说服,但似乎完全倒退了。

1 个答案:

答案 0 :(得分:0)

我面临同样的问题。我唯一能做的就是增加尝试次数。 例如:如果我想允许3次登录尝试,请更改

config.maximum_attempts = 3config.maximum_attempts = 4

这样,如果用户提供错误的密码2次并且第三次输入正确的密码,帐户就不会被锁定。但这不是一个好的解决方案,虽然它暂时解决了我的问题。