close

Agenda

Aquí hay una entrada en el blog súper rara técnica. Pasé bastante tiempo luchando con esta aparentemente simple problema hoy en día, que sentí que debía compartir la respuesta.

El problema: Usted está diseñando una API REST para su aplicación Rails. ¿Quieres que la gente se insertan registros en su aplicación a través de una solicitud POST. Sin embargo la presentación de su solicitud POST a través de su aplicación de 3 ª parte, y su aplicación genera una excepción InvalidAuthenticityToken. ¿Por qué está pasando esto?
El fondo: Ruby on Rails almacena un token de autenticidad para cada sesión, y envía esta señal como un campo de formulario oculto en cualquier solicitud POST en un formulario de envío. Se hace esto para autenticar que la solicitud es en realidad viene como un envío de formularios a través del sitio web, en oposición a una solicitud POST al azar generada a partir de la curva o el otro instrumento. Un tercero desarrollador de aplicaciones de terceros, sin duda no tiene un contador asignado y por lo tanto no puede presentar esta solicitud a través de su API.
La solución: Carriles sólo comprueba el token de autenticidad en el caso de un envío de formularios. Si envía sus datos como tipo de contenido application / xml o application / json, entonces no se requiere el token. Como resultado se puede establecer el tipo de contenido de manera adecuada y codificar los parámetros de entrada como XML o JSON. Ver la esencia de abajo para ver un ejemplo de rubí.
Era difícil de encontrar esta solución a través de Google. Alguien sabe una solución más suave? ¿El diseñador de API generalmente desactivar la protección con la falsificación en este escenario en los puntos finales de la POST para la inserción de datos a través de una API? Déjame saber en los comentarios o en twitter

Previous Post     Next Post


TAGS


CATEGORIES

.