多年来我读过一些教程,说你必须在config.filter_parameters
中将config.filter_parameters += [:password, :password_confirmation]
更新为application.rb
,以便不将密码存储到日志文件中。我还看到了一些只列出config.filter_parameters += [:password]
的教程。我一直使用Devise,我注意到只要我有config.filter_parameters += [:password]
(这是rails 3.2.13中的默认设置),我的密码和密码确认都会被过滤。
为什么要过滤password_confirmation?这是铁路的东西吗?设计?
显然,这是我想要的行为。只是好奇为什么它以这种方式工作。
答案 0 :(得分:3)
这是一个东西:
基本上,密钥只是通过正则表达式传递,如/ password /,如果匹配则将值转换为“[FILTERED]”]
所以匹配 password_confirmation 甚至 do_not_filter_this_password 的字段都会默认过滤。