успешной авторизации на моём сервере, если всё равно при условном обращение /profile я сделаю туда запрос для получения данных о пользователе и выводе их в компонент. Как в таком случае быть с доступом к страницам? Если у меня условно на client-side нет маркера авторизован пользователь или нет, тогда как понимать когда пускать пользователя на страницу ?
Что-то аля этого? Получается это не нужно и нужно ловить 401 как написали выше?
router.beforeEach((to, from, next) => {
if(to.matched.some(record => record.meta.requiresAuth)) {
if (store.getters.isAuthenticated) {
next()
return
}
next('/login')
} else {
next()
}
})
После аутентификации делаете запрос, получаете данные о пользователе, которые необходимы для определения прав доступа, их уже проверяете на фронте
Допустим после авторизации я получаю вот такие данные, это сразу прям в ответ на успешный запрос. Где такие данные хранить тогда? { "id": 1, "email": "admin@test.ru", "name": "ADMIN", "roles": [ { "id": 1, "name": "ROLE_USER", "description": "User role", "authority": "ROLE_USER" }, { "id": 2, "name": "ROLE_ADMIN", "description": "Admin role", "authority": "ROLE_ADMIN" } ] }
Например в сторе
А где вам надо их использовать? Если везде - в каком-то общем хранилище состояния приложения (пиния, какой-то компоузабл с шаред стейтом) Если в одном месте - по месту
Например от этих прав зависит показывать ли пользователю условную админ панель, где есть доп. возможности. Понятное дело, что обычный пользователь, даже если её откроет, то ничего поменять не сможет, так как бэк его пошлёт.
Ну вот и об этом думаю уже, но ток стор же это какое-то состояние, разве после того как я закрою страницу и открою данные не пропадут из переменных в store ? Получается нужно будет сделать запрос в случае если они пустые?
Имеется ввиду кнопку на админ панель
Обсуждают сегодня