Я создаю страницу документации с помощью Swagger и хочу автоматически добавить токен доступа, полученный от правильного /login
вызов. Я пытался с помощью
responseInterceptor: (responseObj) => {
if(responseObj.obj.access_token !== 'undefined'){
token = responseObj.obj.access_token;
}
return responseObj
}
получать и хранить токен, и
requestInterceptor: (requestObj) => {
if(token !== 'undefined') {
requestObj.headers.Authorization = `Bearer ${token}`;
}
return requestObj
}
передать его на последующие запросы через заголовок, однако это работает только для одного вызова, после чего токен возвращается к null
,
Как я мог сохранить token
ценность от возврата?
Нашел решение, объявив токен глобальной переменной.
//Checks any reponse obtained for an access token
responseInterceptor: (responseObj) => {
if("access_token" in responseObj.obj){
window.token = responseObj.obj.access_token;
}
return responseObj
},
//Adds the authorization to the request header if token has been set
requestInterceptor: (requestObj) => {
if(window.token) {
requestObj.headers.Authorization = `Bearer ${window.token}`;
}
return requestObj
}
Я новичок в JS и Swagger, поэтому ответ не был очевидным. Я надеюсь, что это поможет кому-то в конце
Других решений пока нет …