使用Rails 4和ruby 2.1.2
我需要实现一些信息性页面,但其中一个页面中有一个表单。只有在表单提交时才会启动身份验证。只需要一种身份验证方法:OpenID,只有一个现有提供程序。
我做了一个简单的原型,然后我被重定向到OpenID提供商登录。但是,当回来时,我收到InvalidAuthenticityToken错误。
阅读例如这个问题: ActionController::InvalidAuthenticityToken in RegistrationsController#create 我怀疑它与重定向有关。我实际上提交了表单,但首先重定向到OpenID提供程序,然后返回到表单的POST操作URL。在这些重定向上,我猜我使用form_for构建的表单标记会丢失。
我怎么能正确地做到这一点? 我的下一次尝试可能是尝试捕获提交事件,执行OpenID身份验证的XHR请求,并且只有在从那里回来之后我才能真正提交表单。但是我预见到这里有麻烦,对于有效的OpenID登录,我可能需要打开一个新窗口才能有效地执行重定向,而且我不确定如何在此过程中不会丢失...;)
这是我到目前为止所做的事情(嘿,它是原型,我只是使用url: sites_path
作为form_for的选项,因此转到/sites
网址,映射到{{ 1}};))
create