Cómo compartir sesión cuando inicie sesión entre Laravel y Ruby

Desde mi punto de vista, esta pregunta debería haber sido sobre compartir sesiones entre Ruby y PHP o compartir sesiones entre Laravel y Rails. De cualquier manera, mi respuesta abordará cómo Laravel almacena la información de la sesión y cómo se puede aprovechar desde fuera del marco.

Laravel viene con autenticación de usuario y gestión de sesión incorporada. No es una gestión de usuario de valores completa. Si necesita un módulo de administración de usuarios y sesiones más completo, puede usar proyectos como Zizaco Entrust, que personalmente considero se ajusta a todas mis necesidades (múltiples roles de usuario, múltiples permisos de usuario y / o roles, etc.).

Lo que he notado en la tabla de base de datos de usuarios predeterminada en laravel hay una columna llamada “remember_token”. Lo que esto hace es cuando un usuario inicia sesión, el token de recuerdo se almacena en la base de datos. El mismo token, corrígeme si me equivoco, se almacena en el navegador en las cookies. Cuando el usuario abre la aplicación sin haber cerrado la sesión, la cookie del navegador se compara con el token de recuerdo DB. Si coinciden, el usuario inicia sesión automáticamente.

Entonces, ¿cómo se puede aprovechar esto de Ruby / Rails? En lo que respecta a esto, la columna de token de recuerdo DB se puede aprovechar directamente de la base de datos. De lo contrario, requerirá que el usuario use el mismo navegador para acceder a los lados de Laravel y Rails para tener acceso a las cookies del navegador.

Entonces Laravel ya tiene sus propios tokens de sesión almacenados. Si puede encontrar una manera de escribir este token en un lugar donde Ruby / Rails puede acceder sin meterse con el lado de Laravel, entonces creo que puede mantener una sesión perfecta.

Puede intentar escribir el token de recuerdo o una versión hash de él en otra tabla de base de datos. Luego use este valor en el lado de Ruby / Rails para comparar e iniciar sesión automáticamente en un usuario que haya iniciado sesión en Laravel.

¿Cómo compartes sesiones entre laravel y ruby?

me gustaría

  1. Asegúrese de que la base de datos se use para almacenar datos de sesión
  2. Establezca datos de sesión con una clave cifrada en una cookie (las sesiones usan una cookie para almacenar la clave de sesión pero cada idioma la configurará con diferentes nombres de cookies)
  3. Use la tecla de sesión para obtener los datos de la sesión del almacén de datos y trabaje normalmente

El trabajo principal será alinear los nombres de las sesiones y las pruebas para ver si obtuviste los datos correctos