const token = jwt.sign({
email: isUser.email,
userId: isUser._id
}, keys.jwt, {expiresIn: 3600})
res.status(200).json({
token: `Bearer ${token}`
})
this.$http.defaults.headers['Authorization'] = localStorage.token || ''
const res = await Vue.axios.post('/auth/login', user)
this.$http.defaults.headers['Authorization'] = localStorage.token
this.$http.defaults.headers['Token'] = localStorage.token
this.$http.defaults.headers['X-My-Fucking-Token'] = localStorage.token
this.$http.defaults.headers['FUCK'] = `FUCKING ${localStorage.token}`axios.post('/api/user', {
data: {
token: localStorage.token
}
})
Если да, то перед вызовом axios?да как вам угодно. я например делаю так: написал обертку над axios, и при вызове передаю опцию signRequest: true/false. и на основании этой опции в интерцепторе запроса подписываю его токеном примерно так, грубый код:
// foo.js
function query(method, url, data, options) {
return axios({
method,
data,
options: {
...options
}
})
}
// bar.js
query('post', '/users', {
name: 'Alex',
age: 24,
city: 'Moscow'
}, {
signRequest: true
})
// baz.js
axios.interceptors.request.use(cfg => {
if (cfg.signRequest) {
cfg.headers['Token'] = store.state.token
}
return cfg
})Vue, как правильнонет каких-то 100% правильных техник. все техники которые описаны в большинстве тутриолов просто подходят под большинство случаев. но конечная реализация всегда зависит от проекта
axios.interceptors.request.use(cfg => {
if (cfg.signRequest) {
cfg.headers['Token'] = store.state.token
}
return cfg
})
// api.service.js
import axios from 'axios'
const instance = axios.create()
instance.interceptors
instance.interceptors
instance.interceptors
export default instance