У меня есть действие Vuex, которое запускается при каждой загрузке страницы (не router.push), эта функция работает нормально в том смысле, что она проверяет токен и, если токен существует, он перемещается.Моя проблема в том, что я отправляю еще одно действие, для которого требуется этот токен.
Хорошо, так что немного яснее, я использую Axios с Vue.js для отправки запроса API.В моем файле main.js для заголовка авторизации установлено значение хранилища Vuex.Затем у меня есть загрузка App.uve, которая запускает действие по умолчанию, которое проверяет наличие токена (JWT).Это действие по умолчанию также отправляет другое действие под названием storeUser
, которое отправляет запрос GET конечной точке API информации пользователя.При отправке этого вызова API пользовательской информации я вижу на своем бэкэнде, что это не авторизованный вызов API.При проверке заголовков мне нужен заголовок авторизации undefined
.Ниже приведен код, который я считаю релевантным.
Действие по умолчанию, которое запускается при загрузке App.vue
tryAutoLogin({commit, dispatch}) {
const token = localStorage.getItem('token')
if(!token) {return}
commit('authUser',{
token
})
dispatch('storeUser')
},
второе действие, вызывающеепроблема
storeUser({commit, state}, userData) {
if(!state.token) return
axios.get('/user/userInfo')
.then(res => {
console.log(res)
})
.catch(err => {
console.log(err)
})
},
main.js необходимые детали
import store from './store/store.js'
axios.defaults.headers.common['Authorization'] = store.token
new Vue({
render: h => h(App),
store,
router
}).$mount('#app')
Я вырезал тонну в main.js, чтобы сделать его чище, но этосвязанные части к этой проблеме.Я не думаю, что есть что-то еще.
store.js state
state: {
token: null,
name: '',
companyName: ''
},