Реализовал JWT авторизацию с помощью symfony и vue3

Реализовал JWT авторизацию с помощью symfony и vue3. Сохраняю token в localStorage. Есть функция loadToken которая каждый раз обновляет токен если она есть. Она вызывается в router.js. Правильно ли я делаю что я делаю вызов функция loadToken? и каждый раз вытаскиваю токен и кладу в store.Может есть вариант полегче?

2.Есть апи которая с данными пользователя. Стоит ли записывать также в localstorage пользователя как и с токеном? если в данных пользователя лежит роль, которая нужна для того чтобы запретить пользователю доступ к определенному компонету?

export const auth = {
namespaced: true,
state() {
    return {
        token: null,
        refreshToken: null,
    };
},
mutations: {
    setToken(state, token) {
        state.token = token;
        localStorage.setItem('token', token);
    },
    clearToken(state) {
        state.token = null;
        localStorage.removeItem('token');
    },
    setRefreshToken(state, refreshToken) {
        state.refreshToken = refreshToken;
        localStorage.setItem('refreshToken', refreshToken);
    },
    clearRefreshToken(state) {
        state.refreshToken = null;
        localStorage.removeItem('refreshToken');
    }
},
actions: {
    loadToken({state, commit}) {
        const token = localStorage.getItem('token');
        const refreshToken = localStorage.getItem('refreshToken');
        const isValid = isValidToken(token);
        if (token && isValid) {
            state.token = token;
            state.refreshToken = refreshToken;
        } else if (!isValid) {
            commit('clearToken')
            commit('clearRefreshToken')
        }
    },
}
}

Ответы (0 шт):