有没有人知道如何生成rails3的authenticity_token? 我注意到刷新表单页面时表单标记的值不会改变。 是谁生成的?基于会话cookie?准时? SECRET_KEY?
答案 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开始,似乎)。
无论如何生成,此令牌都存储在会话中(即它会持续会话的生命周期)。