Вам нужно использовать какой-то механизм хранения и проверять его каждый раз, когда приложение монтируется. Например, вы можете сохранить ключ сеанса в localStorage
или просто сохранить пользовательское состояние, которое вы хотите сохранить.
Примечание. Я не знаю, какие данные вы храните, я полагаю rol_user
это объект, если это строка, вам не нужно JSON сериализация / десериализация, как я делал в приведенном ниже примере:
import Vue from "vue";
import Vuex from "vuex";
import firebase from 'firebase';
Vue.use(Vuex);
export default new Vuex.Store({
state: {
rol_user: ''
},
mutations: {
UPDATEROL: function (state, payload) {
state.rol_user = payload.rol_user;
localStorage && (localStorage.rol_user = JSON.stringify(state.rol_user));
//^ try to store the user role in localStorage
},
},
actions: {
userAuth: async (context) =>{
if(localStorage && localStorage.rol_user) {
//^ if it's in localStorage, log the user back in/update state to match what it is in localStorage
context.commit('UPDATEROL', { rol_user: JSON.parse(localStorage.rol_user)});
return;
}
let user = firebase.auth().currentUser;
if(user){
let user_info = await firebase.database().ref('users').child(user.uid).once('value');
let val_user = user_info.val();
console.log("USER AUTH - VUEX");
console.log(val_user.rol);
context.commit('UPDATEROL',{
rol_user: val_user.rol
});
}
}
}
});
Вы также можете использовать куки (куки обычно больше общий для этой цели, но localStorage тоже отлично работает)