gpt4 book ai didi

ruby-on-rails - 设计:可锁定 - last_attempt_warning 不显示

转载 作者:数据小太阳 更新时间:2023-10-29 07:29:43 28 4
gpt4 key购买 nike

我正在按照 this wiki 尝试在我的设备中实现 :lockable 模块但遇到了一些问题。在开发中,当登录尝试超过 maximum_attempts 次时,failed_attempts 属性会正确更新并且用户帐户会被锁定,但是:

1) 尽管 config.last_attempt_warning = true 没有显示警告信息

2) 我收到了一封 unlock_instructions 电子邮件,但是当我将链接复制粘贴到浏览器中时,我收到了一个 invalid authorization token 错误。

config/initializers/devise.rb

# ==> Configuration for :lockable
config.lock_strategy = :failed_attempts
config.unlock_keys = [:email]
config.unlock_strategy = :email
config.maximum_attempts = 3
config.last_attempt_warning = true

models/user.rb

class User < ApplicationRecord
devise :database_authenticatable, :confirmable, :registerable,
:recoverable, :rememberable, :trackable, :validatable, :lockable
end

View /设计/ session /新

= flash[:alert] if flash[:alert]
= flash[:notice] if flash[:notice]

= simple_form_for(resource, as: resource_name, url: session_path(resource_name)) do |f|
.form-inputs
= f.input :email, required: false, autofocus: true
= f.input :password, required: false, autocomplete: "off"
= f.input :remember_me, as: :boolean if devise_mapping.rememberable?
.form-actions
= f.button :submit, "Log in"

db/migrate/YYYYMMDDxxx_add_lockable_to_devise.rb

class AddLockableToUsers < ActiveRecord::Migration[5.2]
def change
add_column :users, :failed_attempts, :integer, default: 0, null: false
add_column :users, :unlock_token, :string
add_column :users, :locked_at, :datetime
add_index :users, :unlock_token, unique: true
end
end

我没有任何待处理的迁移,也尝试过重置数据库并重新启动服务器,但没有成功。关于我做错了什么的任何想法?提前致谢。

最佳答案

经过大量挖掘,我设法解决了这两个问题:

未显示警告消息

第一个问题是由配置引起的:

config/initializers/devise.rb

config.paranoid = true

如果您查看 devise module :

If set to paranoid mode, do not show the locked message because it leaks the existence of an account.

根据您的安全要求,您可以将此值更改为 false 或对电子邮件保密并且不提供反馈。如果您有兴趣在登录尝试失败时自定义消息,我强烈建议您阅读 this .


无效的授权 token

第二个问题是我直接从电子邮件的源代码中复制链接引起的 - 由于 = 被编码为 3D=,链接显然已断开。进一步说明here .

希望这对遇到类似问题的人有所帮助。

关于ruby-on-rails - 设计:可锁定 - last_attempt_warning 不显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50698096/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com