【发布时间】:2020-11-04 12:38:56
【问题描述】:
我已经创建了一个 axios 实例:
const instance = axios.create({
baseURL: 'https://example.io/api/',
timeout: 1000
});
并希望在不同的组件上使用它。 我的 webapp 使用 Keycloak 进行保护,每个发送到 API 的请求都需要一个身份验证令牌。为了获取令牌,我调用 Keycloak 方法如下:
kc
.init({onLoad: "login-required"})
.then(authenticated => {
if (kc.idToken === undefined) {
return Promise.reject("Can not be authenticated")
}
return authenticated && root !== null ? start({authToken: kc.idToken}, root) : Promise.reject("Can not be authenticated")
})
.catch(console.log)
当我向 API 服务器发出请求时,我在请求标头中将令牌作为 Bearer token 传递。为避免在每个请求上传递令牌,我可以使用intercepter 权限还是我必须做什么?
【问题讨论】:
-
我认为实例部分很好。你只需要使用拦截。您似乎已经在管理令牌。在拦截器中简单调用并在那里使用它。