我有一个应用程序,其中大多数端点使用相同的令牌进行身份验证。因此,当用户登录时,我将使用以下内容:
axios.defaults.headers.common['Authorization'] = 'Bearer ' + user.access_token
但是我有一些端点具有不同的Bearer令牌。在这些情况下,我正在尝试:
axios.get(`${API_BASE}/Config`, { headers: { Authorization: AuthStr } })
.then(response => {
if (response.status === 200) {
commit(HIDE_LOADING)
resolve(response.data)
}
})
将AuthStr
作为参数传递给该端点,并且是此端点的正确承载令牌。但是,当我调用此方法时,axios将发送在axios.defaults.headers.common['Authorization']
上配置的Bearer令牌,而忽略了我的AuthStr
令牌参数。
我该如何覆盖?
答案 0 :(得分:0)
正如@Maaz Syed Adeeb指出的,这是一个轴距错误。我可以按照建议使用以下代码来解决:issue
axios.get(`${API_BASE}/EndPointThatUserAnotherToken`, getAxiosOptions(AuthStr))
.then(response => {
if (response.status === 200) {
commit(HIDE_LOADING)
resolve(response.data)
}
})
function getAxiosOptions (authToken) {
let opt = {
transformRequest: [function (data, headers) {
delete headers.common.Authorization
headers.Authorization = authToken
return data
}]
}
return opt
}