Eu estava trabalhando em um novo aplicativo Rails 4 (no Ruby 2.0.0-p0) quando me deparei com alguns problemas de token de autenticidade.
Ao escrever um controlador que responde ao json (usando o respond_to
método de classe), cheguei à create
ação que comecei a receber ActionController::InvalidAuthenticityToken
exceções quando tentei criar um registro usando curl
.
Eu fiz questão de definir -H "Content-Type: application/json"
e definir os dados com, -d "<my data here>"
mas ainda sem sorte.
Tentei escrever o mesmo controlador usando o Rails 3.2 (no Ruby 1.9.3) e não tive nenhum problema de token de autenticidade. Pesquisei e vi que havia algumas alterações nos tokens de autenticidade no Rails 4. Pelo que entendi, eles não são mais inseridos automaticamente nos formulários? Suponho que isso esteja afetando de alguma forma os tipos de conteúdo não HTML.
Existe alguma maneira de contornar isso sem precisar solicitar um formulário HTML, capturando o token de autenticidade e fazendo outra solicitação com esse token? Ou estou perdendo completamente algo que é completamente óbvio?
Edit: Eu apenas tentei criar um novo registro em um novo aplicativo Rails 4 usando um andaime sem alterar nada e estou tendo o mesmo problema, então acho que não foi algo que fiz.