在会话中存储太小时,如何在设计身份验证后保留Rails形成POST数据?

时间:2015-08-04 21:38:44

标签: ruby-on-rails devise

我已经在这个房子周围了,我确定我以错误的方式接近这个。

在我的RoR网站上,用户可以输入新帖子的详细信息(如果他们已注销)。但当他们点击“创造”时我检查他们是否经过身份验证。如果不是,我会要求用户登录或创建帐户。登录后,我希望表单自动重新提交原始POST数据。我正在使用设计进行身份验证。

除了保留原始表单POST数据并避免CSRF失败之外,我已经完成了所有工作。

我认为CSRF失败是因为重新提交的数据没有真实性令牌 - 所以我现在关闭了CSRF保护,直到我修复了 POST数据保留。

我无法将数据存储在会话中,因为表单数据包含图像并且会破坏4k会话限制。

请问,是否有一个常规的Rails模式可以解决这个问题?

由于 保罗

1 个答案:

答案 0 :(得分:0)

这很简单:从新表单中获取真实性令牌(您在用户登录后重新请求)并使用旧请求数据发送它。