День добрый!
Вопрос по пониманию, мучаюсь с логикой как правильно,
и как правильно делают другие :)
У меня есть сервер на node.js который формирует токен JWT и в куки с флагом httpOnly передаёт его на фронтенд (у меня vue).
например, так:
res.cookie('AuthToken', authToken, { httpOnly: true, secure: true })
соответственно на VUE из js доступа к токену "AuthToken" нет.
На бэкенд токен принимается так (так как передать в axios запросе в headers его уже нельзя(или я не знаю как?):
req.cookies['AuthToken']
На этом этапе всё работает.
суть:
токен создал, обмениваюсь им с фронтенд и бэкендом,
но где и как хранить сами данные пользователя(логин, какая-то инфа о пользователе)?
т.е. тело JWT на vue я разобрать не могу,
приходит мысль отдельно передавать ещу одну куку
"AuthToken_2"
с бекэенда типа так
res.cookie('AuthToken_2', JSON.stringify(user), { httpOnly: false})
и на фронте уже с нее брать логин и инфу.
Сейчас на middleware на node.js я в каждом запросе отсылает AuthToken и AuthToken_2 в куки.
Т.е. при каждом обращении серверу этот токен обновляется в куках (мысль чтобы всегда проверять его на актуальность(ну типа, а вдруг забанен?)).
не могу разобраться, как во VUE (у меня SPA) забирать каждый раз актуальный
AuthToken_2
?
P.S. я думал подключить vuex и типок акто так:
в header.vue:
computed: {
reversedMessage: function () {
return this.$store.state.count
}
},
а во VUE router типо так:
router.beforeEach( async (to, from, next) => {
store.getters.doneTodos
next()
})
vuex такой
getters: {
doneTodos (state) {
return state.count = Cookies.get('AuthToken_2')
}
}
как я понимаю getters инициирует обновление значение <со>count
и все якобы работает, только с "запозданием на страницу". то есть, сами куки то приходят не мгновенно, и в момент перехода по роуту он берет еще старое значение.
p.s. я, конечно, не уверен что это AuthToken_2 (логин, какая-то инфа о пользователе) будет меняться часто, но тем не менее.
хочу проконсультироваться, возможно мой подход вообще ужас :(
Громаднейшее спасибо тому, кто поймет меня разжует логику того
как нужно