axios - How to set axios token for client side in nuxt server init?
问题描述
I'm trying to authenticate my user when the page is loading. So I have the following code :
actions: {
nuxtServerInit ({dispatch, commit, app}, context) {
return new Promise((resolve, reject) => {
const cookies = cparse.parse(context.req.headers.cookie || '')
if (cookies.hasOwnProperty('x-access-token')) {
app.$axios.setToken(cookies['x-access-token'], 'Bearer')
api.auth.me2()
.then(result => {
commit('setUser', result.data.user)
resolve(true)
})
.catch(error => {
commit('resetUser')
resetAuthToken()
resolve(false)
})
} else {
resetAuthToken()
resolve(false)
}
})
}
However I have the following error : Cannot read $axios property of undefined. What is wrong with my code ?
解决方案
另一种方式。你可以传入app
第二个参数,这样
nuxtServerInit ({dispatch, commit}, {app}) {
完整代码:
actions: {
nuxtServerInit ({dispatch, commit}, {app}) {
return new Promise((resolve, reject) => {
const cookies = cparse.parse(context.req.headers.cookie || '')
if (cookies.hasOwnProperty('x-access-token')) {
app.$axios.setToken(cookies['x-access-token'], 'Bearer')
api.auth.me2()
.then(result => {
commit('setUser', result.data.user)
resolve(true)
})
.catch(error => {
commit('resetUser')
resetAuthToken()
resolve(false)
})
} else {
resetAuthToken()
resolve(false)
}
})
}
}
推荐阅读
- microsoft-cognitive - Azure QnAMaker - 管理内容
- mysql - 获取下一个可用日期(mysql take_dates 表中不存在的第一个日期)
- windows - 本地 git 服务器 - 文件夹路径窗口的问题
- javascript - 在日历中隐藏第二天的事件
- vba - 确定最后一个活动行
- json - 如何在 Swift 中循环 Alamorefire 数据响应?
- r - SVM 参数调整导致性能不佳 (R)
- jmeter - Jmeter- POST 请求数据具有阿拉伯字符的问题
- mongodb - $lookup 区分大小写的字段
- vba - 带隐藏单元 VBA 的慢速宏