当我尝试持久化对象时,Phoenix框架向我发送“cookie named”_toDoListMaster_key“超过最大大小4096字节”

时间:2017-06-16 07:37:11

标签: cookies elixir phoenix-framework

所有都在标题中,当我在浏览器中查找cookie时,我得到了: “_toDoListMaster_key SFMyNTY.g3QAAAABbQAAAAtfY3NyZl90b2tlbmQAA25pbA.ehmC7o9_KRHqClwacE38DX1JHZBmcPu79kJQpvDdBo localhost / Session 109 o”
这只是一个关键所以为什么会出错? 抱歉我的英语有限,谢谢你的帮助!!

2 个答案:

答案 0 :(得分:0)

你在饼干里塞了多少东西?

相同来源和相同路径的Cookie共享4KiB空间。你得到这个错误,因为其他东西已经吃了3.99KiB cookie空间。

你不应该在cookie中放太多东西,特别是可能扩展的东西。如果纯粹在浏览器上使用某些内容,请考虑将其放在window.localStorage中。如果它纯粹用在服务器上,那么将它放在某种数据库中(例如MySQL或Redis)。

答案 1 :(得分:0)

默认情况下,标头值允许为4096字节。在您的情况下,标头值的长度应该更大。

您可以像这样为牛仔配置不同的最大值(max_header_value_length键):

config :your_app, YourAppWeb.Endpoint,
  http: [
    port: 8080,
    compress: true,
    protocol_options: [
      request_timeout: 5000,
      max_header_value_length: 8192
    ],
    transport_options: [
      num_acceptors: 150
    ]
  ],
  url: [host: "example.com", port: 443, path: "/", scheme: "https"],
  cache_static_manifest: "priv/static/cache_manifest.json",
  root: ".",
  server: true,
  is_production: true,
  version: Mix.Project.config()[:version]

有关牛仔配置的文档,请参见here