2009-11-13 77 views
10

我在另一个网站(使用不同的后端)上有一个表单,我希望能够发布到我的Rails应用程序(在不同的域上)。从外部表单接收POST

  • 如何为外部表单生成有效的真实性标记以便我的Rails应用程序可以接受它?
  • 假设我可以对上述问题做出回答 - 我还需要做些什么来完成这项工作?除了真实性标记,其余的似乎很简单...

感谢您的帮助!

回答

18

您不能生成您的Rails应用程序之外的autenticity令牌。 您可以执行的操作仅限于此操作的disable the token protection,并使用基于before_filter的自定义实现。

skip_before_filter :verify_authenticity_token, :only => :my_action 
before_filter :verify_custom_authenticity_token, :only => :my_action 

def verify_custom_authenticity_token 
    # checks whether the request comes from a trusted source 
end 
+0

不错。感谢您的澄清! – neezer 2009-11-13 16:44:48

2

你可以只添加滤镜等清除检查:

skip_before_filter :verify_authenticity_token, :only => :action_name 
+0

难道这不会让我知道任何人发布到我的rails应用程序?这不是安全问题吗? – neezer 2009-11-13 16:42:27

+0

例如,您可以在其他过滤器中添加任何其他验证机制(IP地址,无论)。 – JRL 2009-11-13 16:50:27