1

我已将 dotPay 集成到我的 Spree 网站以进行付款。选择此选项后的用户将从我的网站重定向到 dotPay 的。他在那里支付所需的费用,然后他可以单击一个按钮,将他返回到我的网站。这就是问题所在。当他回来时,他不再登录,我需要他登录。

有点奇怪(也许对我来说)他正在通过 POST 请求重定向 - 无法改变这一点。有了这个,我也会收到一个警告Can't verify CSRF token authenticity,不确定这是否与它有关。

非常欢迎任何建议。

PS 我正在使用 Spree 1-3-stable、Rails 3.2.13、Devise 2.2.3、Ruby 1.9.3

4

2 回答 2

1

对于特定操作,您可以通过在控制器中添加如下一行来禁用 CSRF 检查:

protect_from_forgery :except => [:callback_from_dotpay]

相反,您可以指定保护的操作,如下所示:

protect_from_forgery :only => [:create, :update, :delete]

或者,要为整个控制器完全关闭它,您可以这样做(Rails 2、3):

skip_before_filter :verify_authenticity_token

如果你决定跳到最前沿,Rails 4 希望你这样做:

skip_before_action :verify_authenticity_token
于 2013-10-29T20:12:04.173 回答
0

好吧,最后我最终删除了 CSRF 验证。我不是 100% 确定,但我不能将我的邮件发送authenticity_token到 dotPay(嗯,我可以,但他们不会退回)。但是,他们正在生成一个 md5,我可以检查它,并且我正在检查它来自的 IP 地址。

于 2013-05-13T20:27:52.630 回答