Rails会话对象服务器端的哪些部分实际上已写入用户的会话Cokie

时间:2019-04-25 09:21:10

标签: session ruby-on-rails-5

我们一直在遇到Cookie溢出问题,原因是当用户创建一个长查询,然后设计将他们的位置存储在会话中时,很长的一段时间会导致会话溢出。

我想看看是否还有其他我可以清除的无用数据,但我不确定session的哪一部分实际上被写入了,而不仅仅是在存储空间过长时就剪切存储的位置。用户的会话Cookie。

我尝试搜索此信息,但我只是获得了有关Rails会话本身或有关会话的内容的文章。

session对象的哪些部分实际上已写入最终用户的会话cookie?

1 个答案:

答案 0 :(得分:0)

答案是拔出原始会话cookie字符串,并检查其bytesize是否大于4098(4kb),如下所示:

session.instance_variable_get(:@req).instance_variable_get(:@env)['rack.request.cookie_hash']['_*app_name*_session'].bytesize > 4098