【问题标题】:how do I troubleshoot Rack::Session::Cookie after decrypting nothing looks wrong with it?解密后如何解决 Rack::Session::Cookie 看起来没有问题?
【发布时间】:2017-07-13 07:40:47
【问题描述】:

在将参数传递给 POST 路由告诉我时,我不断收到错误消息

Warning! Rack::Session::Cookie data size exceeds 4K.
Warning! Rack::Session::Cookie failed to save session. Content dropped.

我解密了 cookie,它绝对没有任何问题......它看起来和它应该的完全一样......

{"session_id"=>"94a15819b3b915556c120a5e83c75bfaab83bfce555bb81e78512adabbbbe654"}
{"user"=>#<OEDApp::User _id: 58502d2d07a0ee469cc0c065, created_at: 2016-12-13 17:17:33 UTC, updated_at: 2016-12-22 18:43:48 UTC, first_name: "", last_name: "", email: "", phone_number: "", encrypted_password: "XbUAU7w3poTt8uE7OUGwJw==", access_level: "Manager", is_active: true, is_admin: true>}
{"login"=>true}

Rack Session Cookies 是否有任何已知的错误会导致错误触发?

【问题讨论】:

    标签: ruby sinatra mongoid rack


    【解决方案1】:

    看起来您将User 对象直接存储在会话中。我怀疑当它被序列化以存储在 cookie 中时,它正在引用其他对象,因此所有对象的组合大小超过了限制。

    与其将整个 User 对象存储在会话中,不如只存储它的标识符(例如 _id 值)并在每个请求中查询数据库以获取实际对象。

    【讨论】:

    • 不幸的是这并没有解决它,不幸的是我现在正在开发三个独立的项目中遇到它,我需要一些重要的资源来尽快修复它=/
    • 有点太晚了,无法提供帮助;我遇到了这篇文章,因为我也收到了这条消息。也许这对未来的读者有帮助:我发现存储在会话中的一个对象包含一个很长的条目列表。该线索来自于使用 p session 打印会话对象。 Rack 没有错误,这是我自己的设计错误。
    猜你喜欢
    • 2014-01-28
    • 1970-01-01
    • 2014-06-08
    • 2012-11-14
    • 2021-08-13
    • 1970-01-01
    • 2011-03-07
    • 2013-08-22
    • 1970-01-01
    相关资源
    最近更新 更多