Rails 5 API protect_from_forgery

Tengo una aplicación API Rails 5 (ApplicationController < ActionController::API) Surgió la necesidad de agregar un formulario GUI simple para un punto final de esta API.

Inicialmente estaba obteniendoActionView::Template::Error undefined method protect_against_forgery? cuando traté de procesar el formulario. yo añadíinclude ActionController::RequestForgeryProtection yprotect_from_forgery with:exception a ese punto final. Lo que resolvió ese problema como se esperaba.

Sin embargo, cuando intento enviar este formulario obtengo:422 Unprocessable Entity ActionController::InvalidAuthenticityToken. he añadido<%= csrf_meta_tags %> y verificado quemeta: csrf-param ymeta: csrf-token están presentes en mis encabezados, y esoauthenticity_token está presente en mi forma. (Las fichas en sí son diferentes entre sí).

He intentado,protect_from_forgery prepend: true, with:exception, sin efecto. Puedo "solucionar" este problema comentando:protect_from_forgery with:exception. Pero entiendo que eso está desactivando la protección CSRF en mi formulario. (Quiero protección CSRF).

¿Qué me estoy perdiendo?

ACTUALIZAR:

Para tratar de dejar esto en claro, el 99% de esta aplicación es una API JSON RESTful pura. Surgió la necesidad de agregar una vista y formulario HTML a esta aplicación. Entoncespara un controlador Quiero habilitar la protección CSRF completa. El resto de la aplicación no necesita CSRF y puede permanecer sin cambios.

ACTUALIZACIÓN 2:

Acabo de comparar la fuente de la página del formulario HTML y el encabezado de esta aplicación con otra aplicación Rails 5 convencional que escribí. losauthenticity_token en el encabezado y elauthenticity_token en la forma sonlo mismo. En la aplicación API con la que tengo el problema, sondiferente. Tal vez eso es algo?

ACTUALIZACIÓN 3:

Ok, no creo que el desajuste sea el problema. Sin embargo, en otras comparaciones entre las aplicaciones que funcionan y las que no funcionan, noté que no hay nada en Red> Cookies. Veo muchas cosas como_my_app-session en las cookies de la aplicación de trabajo.

Respuestas a la pregunta(4)

Su respuesta a la pregunta