具体是SignedCookieJar
做什么的?
MessageEncryptor.encrypt_and_sign
和使用cookie 值有什么区别?
如果您正在寻找给定课程的确切功能,我建议您咨询源代码。SignedCookieJar
,例如,在 中rails/actionpack/lib/action_dispatch/middleware/cookies.rb
。
看起来 aSignedCookieJar
是标准 cookie jar 的包装器,但是在将 cookie 设置为其父 jar 之前,它将使用ActiveSupport::MessageVerifier
' 的方法对其进行签名,并且在从父 jar 获取 cookie 时,如果验证者的方法无效generate
,它将返回签名。nil
verify
不同之处似乎是MessageVerifier
只对数据进行签名,但保留原始数据不变,而MessageEncryptor
在签名之前会额外加密数据。Rails 文档说,用例的不同之处在于:
[MessageEncryptor] 可用于类似于 MessageVerifier 的情况,但您不希望用户能够确定有效负载的值。
对于签名的 cookie,我们通常不会太担心。