Реализовал 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')
}
},
}
}