Rails Shopify应用程序中的InvalidAuthenticityToken

时间:2018-08-06 22:28:17

标签: ruby-on-rails ruby-on-rails-5 shopify shopify-app authenticity-token

我有一个使用shopify_app gem的Shopify应用。我试图将表单发布到管理页面,但一直收到InvalidAuthenticityToken。我正在使用Rails 5.1.6,并设置了config.action_controller.per_form_csrf_tokens = false来帮助识别问题。我已经确认将元csrf-token,authenticity_token表单字段和authenticity_token都发布到服务器上,都具有相同的值。

<meta name="csrf-token" content="FW84k6S5WXpepe+1gADRh+Ly1kBVWrkJohP5QYz54a35KqKZghuciwU0lIlLNRVoHjOM8peOoCqf+HXDDIlMZQ==">


<input type="hidden" name="authenticity_token" value="FW84k6S5WXpepe+1gADRh+Ly1kBVWrkJohP5QYz54a35KqKZghuciwU0lIlLNRVoHjOM8peOoCqf+HXDDIlMZQ==">


Parameters: {"utf8"=>"✓", "authenticity_token"=>"FW84k6S5WXpepe+1gADRh+Ly1kBVWrkJohP5QYz54a35KqKZghuciwU0lIlLNRVoHjOM8peOoCqf+HXDDIlMZQ==", "access_key"=>{"name"=>"A Test", "account"=>""}, "commit"=>"Save", "id"=>"2"}

控制器继承了ShopifyApp :: AuthenticatedController,并且我删除了所有before_actions。

是否可以记录期望的authenticity_token值?

如果有人可以提供一些指导,将不胜感激。

谢谢。

1 个答案:

答案 0 :(得分:0)

我的实例遇到了类似的问题。检查以确保您的request.base_url是预期的。

就我而言,我必须强制使用SSL(在config / environments / {development,production,test} .rb中)并将X-Forwarded-Proto从我的代理传递到Rails实例,因为http之间存在冲突/ https在request.base_url中,结果抛出CSRF错误。

在环境配置中强制使用SSL:

config.force_ssl = true

服务器块中的nginx proxy_set_header:

proxy_set_header X-Forwarded-Proto $scheme

-戴夫。