有人知道rails3的authenticity_token是如何生成的吗?我注意到,当我刷新表单页时,表单标记的值不会更改。它生成的是谁?基于会话cookie?准时?secret_key?
发布于 2011-08-07 01:08:49
AuthenticityToken基本上是对ActiveSupport::SecureRandom.base64(32)的调用,您可以在这里阅读http://api.rubyonrails.org/classes/ActiveSupport/SecureRandom.html
编辑-已更新,以包括更多最新的更改,如下面Lambart的答案所示。
在Rails Ruby3.1中,ActiveSupport::SecureRandom被弃用,取而代之的是来自>=标准库的SecureRandom (似乎是从Ruby1.9.3开始的)。
无论它是如何生成的,该令牌都存储在会话中(即,它在会话的生命周期中持续)。
谢谢,Lambart。
发布于 2013-10-25 01:55:30
在Rails < 3.09中,AuthenticityToken是由对ActiveSupport::SecureRandom.base64(32)的调用生成的,您可以阅读有关here的内容。
在Rails Ruby3.1中,ActiveSupport::SecureRandom被弃用,取而代之的是来自>=标准库的SecureRandom (似乎是从Ruby1.9.3开始)。
无论它是如何生成的,该令牌都存储在会话中(即,它在会话的生命周期中持续)。
https://stackoverflow.com/questions/6968106
复制相似问题