vuetify vue template style framework data component vue.js laravel-passport

vue.js - template - vuetify



Mantener la informaciĆ³n de usuario registrada (2)

Me las arreglé para iniciar sesión con pasaporte laravel. Tengo el token, genial. Pero quiero mantener la información de usuario registrada, nombre, avatar, etc.

Mi procedimiento de inicio de sesión obtiene el token oauth. En el componente del tablero, realizo una llamada de API para datos de usuario.

¿Debo mantenerlos en el objeto Vue global o usar Vuex? ¿Es seguro?


Algunas opciones que podrías considerar

  • almacenar datos en cookies
  • use localStorage
  • mantener todo en la instancia raíz vue
  • mantener todo en un componente vue de envoltura

Mi sugerencia sería almacenar el token de autenticación, que en realidad se requiere para llamar con éxito a su servidor, en una cookie. Esto hará que sea muy fácil acceder a él con cada solicitud que envíe.

Para almacenar la información del usuario, sugiero crear un componente de envoltura o usar la instancia de raíz vue. El siguiente ejemplo debería aclarar esto.

envolver el componente del hogar (plantilla en línea)

data: function() { return { userinfo: {} } }, created: function() { // load your user info }

Luego úsala en tu index.html / vista principal

<body> <home inline-template> <!-- any stuff here --> <!-- pass the user prop to every component that is shown in the userinfo --> <router-view :user="userinfo"></router-view> </home> </body>

Sus componentes que se muestran en la vista de enrutador pueden acceder al soporte del usuario

componente de ejemplo

... props: [''user''], ... <template> <span>{{ user.name }}</span> </template> ...

IMPORTANTE: para que esto funcione, también deberá agregar accesorios: fiel a la definición de su ruta. Todo se explica aquí en detalle: https://router.vuejs.org/en/essentials/passing-props.html

Observación: Si no desea cargar datos de usuario en su componente de envoltura, puede cargarlo en cualquier otro lugar y usar un bus de eventos para transferir los resultados al componente de envoltura. Sin embargo, siempre debes tener UNA sola fuente de verdad con respecto a la información del usuario. Almacénelo solo en un solo lugar.


Encontré el asistente de sesión realmente fácil de usar y resolvió el problema globalmente usando el token oauth:

Ver: https://laravel.com/docs/5.4/session , heading: The Global Session Helper