Rails - 从提交返回后会话丢失(POST)

KKK*_*KKK 3 session ruby-on-rails

我正在将Liberty Reserve购物车集成到我的Rails应用程序中.调用LR(使用fork提交)工作正常,LR也会在成功发布后重定向回我的页面.但是当应用程序返回时,我的会话丢失了.

该页面如下所示:

<form action="https://sci.libertyreserve.com/en" method="GET">
<input type="hidden" name="lr_acc" value="XXXXX">
<input type="hidden" name="lr_store" value="XXX">
<input type="hidden" name="lr_merchant_ref" value="1">
<input type="submit" value="Liberty Reserve"/>
</form>
Run Code Online (Sandbox Code Playgroud)

LR工作的方式是,在用户成功预订了他的交易之后,LR重定向回我的网页,但我的身份验证失败,因为会话变量全部消失了.

我认为它与rails应用程序所需的CSRF-TOKEN有关,但LR显然没有提供.

我可以为一个特定页面/操作停用CSRF胎儿,还是有其他解决方法?

vik*_*vik 7

我开始将Rails作为Facebook应用程序开始并通过Koala Lib.我读到某个地方关闭"保护免受伪造"的功能

对于测试,您只需在ApplicationController中注释掉protect_from_forgery,但只是为了查看它是否适合您.class ApplicationController <ActionController :: Base #protect_from_forgery

如果可行,您可以尝试为您的特定控制器/ actionHere做一个例外. http://api.rubyonrails.org/classes/ActionController/RequestForgeryProtection/ClassMethods.html

小心.它可能是一个更容易处理的漏洞. http://ruby.about.com/od/security/a/forgeryprotect.htm