rails 3 authenticity_token如何生成它

时间:2011-08-06 16:20:59

标签: ruby-on-rails

有没有人知道如何生成rails3的authenticity_token? 我注意到刷新表单页面时表单标记的值不会改变。 是谁生成的?基于会话cookie?准时? SECRET_KEY?

2 个答案:

答案 0 :(得分:6)

AuthenticityToken基本上是对ActiveSupport::SecureRandom.base64(32)的调用,您可以在此处阅读http://api.rubyonrails.org/classes/ActiveSupport/SecureRandom.html

修改 - 根据Lambart的回答更新以包含更多近期更改。

在Rails> = 3.1中,不推荐使用ActiveSupport :: SecureRandom来支持Ruby标准库中的SecureRandom(从Ruby 1.9.3开始,似乎)。

无论如何生成,此令牌都存储在会话中(即它会持续会话的生命周期)。

感谢Lambart

答案 1 :(得分:0)

在Rails< 3.09,AuthenticityToken是通过致电ActiveSupport::SecureRandom.base64(32)生成的,您可以阅读here

在Rails> = 3.1中,不推荐ActiveSupport::SecureRandom使用来自Ruby标准库的SecureRandom(从Ruby 1.9.3开始,似乎)。

无论如何生成,此令牌都存储在会话中(即它会持续会话的生命周期)。