Использование vuex store
Получив токен из конечной точки, вы можете сохранить его в локальном хранилище:
api_call_here
.then(response => {
localStorage.setItem('token', response.body.token)
})
Далее, ваше хранилище vuex должно выглядеть следующим образом:
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const state = {
isLogged: !!localStorage.getItem('token')
token: localStorage.getItem('token') || null
}
Таким образом, вы сможете в каждом компоненте проверять, вошел ли пользователь в систему:
this.$store.state.isLogged
// => willверните true или false
Вы можете следовать той же логике для токена доступа и срок действия которого истекает.
Обновление: Приложения SPA могут обрабатывать все без необходимости обновления.Но после перезагрузки (вручную) переменные не будут сохранять свое собственное состояние.
Вот почему вы используете локальное хранилище, поэтому даже если страница перезагружается, токен сохраняется в локальном хранилище, и вы можете получить его.
Практически, когда пользователь входит в систему, вы сохраняете токен в localStorage. Когда страница перезагружается, пользователь остается в журнале, пока токен не окажется в localStorage.
Если вы просто поместите токен в переменную,если страница перезагружается, эта переменная больше не будет содержать токен.
Если вам не нравится localStorage, в качестве решения вы можете отправить запрос на вход в систему всякий раз, когда страница перезагружается, что не рекомендуется.
Хочу отметить, что вы также можете использовать куки.
Надеюсь, мой ответ помог вам.