Estoy creando una aplicación web que va acompañada de un pequeño sitio web que usa Jekyll. La razón de esto es que el sitio web casi nunca cambiará y de esta manera puede ejecutarse rápido (HTML+CSS puro y algo de JavaScript) y semi-independiente de la aplicación.
El sitio de Jekyll se coloca dentro de la carpeta pública de Laravel y funciona bien. Tal como está, un usuario que quiera usar nuestra aplicación debe visitar la ruta de autenticación predeterminada de Laravel para iniciar sesión (/ iniciar sesión).
Me gustaría agregar un formulario de inicio de sesión en una de las páginas de mi sitio que permita al usuario iniciar sesión sin visitar primero la aplicación.
Por supuesto, intenté agregar un formulario simple y publicarlo en /login (la ruta predeterminada de Laravel), pero esto no funcionará porque Laravel espera que se establezca un token csrf. Sé que Laravel establece una cookie que contiene el token cifrado, pero no estoy seguro de si (y cómo) puedo usar esto.
¿Hay alguna forma (sencilla) de agregar un formulario de inicio de sesión a una página que NO sea de Laravel? ¿Y es posible hacerlo usando solo HTML y JavaScript (tal vez usando Ajax)?
Tienes unas cuantas opciones.
1- Opción más barata: deshabilite csrf_token solo en la ruta de inicio de sesión. Algunos recomendarán esto, otros dirán que no deberías. Puedes investigar en línea si quieres ir por este camino o no.
2- Realice una solicitud GET ajax a una ruta que le devolverá el csrf_token para que pueda usarlo en su formulario. En su controlador Laravel, simplemente devuelve el token de sesión
public function getToken() { return session()->token(); }3 - Siga el camino del pasaporte para las solicitudes de API al igual que los SPA. https://laravel.com/docs/5.4/pasaporte