Airbnb

Registro apartamentos tur铆sticos

Apartamentos tur铆sticos

En Espa帽a cuando se alquila un apartamento vacacional, existe un cauce legal y correcto el est谩 definido en la Ley Org谩nica de Protecci贸n de la Seguridad Ciudadana del 30 de marzo de 2015.

Seg煤n esta ley, los propietarios de los apartamentos tur铆sticos deben informar mediante partes de viajeros la actividad de los mismos. Esto puede hacerse de manera presencial rellenando un formulario o mediante una web habilitada para este fin.

Web e-hotel

Compatibilidad

La web anteriormente mencionada est谩 desarrollada en puro html, css y javascript. Es por esto y por desconocimiento de nuevas apis y actualizaciones que la compatibilidad con los navegadores m贸viles es nula; tras introducir los datos del login y acceder al formulario de parte del viajero el usuario es redirigido al login indicando que la sesi贸n ha caducado.

Una experiencia un tanto complicada pero que no llego a comprender ya que es una web unicamente dedicada a guardar datos y no deber铆a de haber complejidad alguna.

C贸mo funciona

La autenticaci贸n se realiza mediante cookies y un token _csrf que se genera al entrar a la web por primera vez.

html
<form id="loginForm" name="loginForm" action="/e-hotel/execute_login" method="POST">
<!-- ... -->
<input type="hidden" name="_csrf" value="b740b19f-3673-497f-b37d-1aa8f82b42e4">
</form>

1. Extracci贸n del _csrf

js
const _csrf = htmlParser.parse(body).querySelector('input[name="_csrf"]').attrs.value;

2. Extracci贸n las cookies

Hay que extraer las cookies de la respuesta de la web.

js
const response = await instance.get("/login");
const body = response.data;
const cookies = response.headers["set-cookie"];
const cookiesStr = cookies.join("; "); // cookiesession1=678B28A508F1BC790C3F4A51382F2F61; UqZBpD3n3iHPAgNS9Fnn5SbNcvsF5IlbdcvFr4ieqh8_=v1DNo0JbgW4rv; FRONTAL_JSESSIONID=fkNbwOG5j3NmSDGj87e8fbvn6MTKz3j90YpYgf0MB5Mx4X7a7YPc!-1379780343

Posible soluci贸n

Se podr铆a crear una web 'wrapper' que se encargue de la autenticaci贸n y de la extracci贸n de las cookies y que haga de intermediario entre la web oficial y el usuario. Esta web 'wrapper' ser铆a compatible con los navegadores m贸viles por lo que se eliminaria el defecto de la web oficial.

Alternative