2

多年来,我已经阅读了一些教程,这些教程说您必须更新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 会被过滤?这是铁轨的事吗?设计?

显然,这是我想要的行为。只是好奇为什么它会这样工作。

4

1 回答 1

3

这是一个轨道的事情:

http://api.rubyonrails.org/classes/ActionDispatch/Http/FilterParameters.html#method-i-parameter_filter

本质上,键只是通过像 /password/ 这样的正则表达式传递,如果匹配,则值将转换为“[FILTERED]”]

因此,匹配password_confirmation甚至 do_not_filter_this_password的字段都将默认被过滤。

于 2013-05-04T02:19:34.747 回答