2015-01-16 57 views
0

我正在制作这个小应用程序,它使用(或多或少)https://www.railstutorial.org/book中的会话管理代码。Rails 4.2 InvalidAuthenticityToken错误,但仅在生产

它在开发模式下工作正常,并且在开发机器上以生产模式运行。当我部署到运行nginx和Phusion Passenger的机器上时,我开始在每个使用令牌的请求(例如表单和与method: delete的链接)上获取InvalidAuthenticityToken。

我已验证令牌是否生成并与请求一起发送。

我注意到了一件事。该应用程序的主要区域/向所有人开放,不需要任何形式的登录。需要登录的区域是/admin。在开发中运行时,会生成一个会话cookie,路径为/。部署时,有两个会话cookie,一个用于/,另一个用于/admin。我怀疑CSRF令牌是使用一个会话生成的,然后使用其他会话进行验证。

这听起来似乎合理吗?我将如何去进一步调查并修复它?

预先感谢您。

+0

使用此命令重新生成一个新令牌 - rake secret –

+0

@CaffeineCoder会有什么帮助?这只是打印出一个随机生成的令牌。 –

+0

您需要将其粘贴到secret_token.rb中 –

回答