Я использую аутентификацию токена для своего приложения «Спа». Перед тем, как выполнить CRUD-процесс, я проверяю время окончания обновления токенаЕсли токен обновления действителен, нет проблем, но если он не действителен, я отправляю старый токен обновления и получаю новый токен обновления и доступа с сервера перед пересылкой. Нет проблем до этого момента.
Проблема в том, что механизм обновления завершается без ожидания ответа от сервера.
currentUser сохраняет значение токена. Я проверяю нулевой элемент управления для токена, а затем, если срок действия недействителен, я отправляю старый токен обновления.
В этот момент функция возвращается без ожидания ответа authenticationService.createAccessTokenByRefreshToken . Функция должна ждать эту функцию, потому что если токен доступа недействителен, мне нужен новый.
Почему функция завершается без ожидания?
export function authHeader() {
var authorization = {
Authorization: ''
};
var currentUser = authenticationService.currentUserValue;
if (currentUser && currentUser.token) {
const refreshToken = currentUser.refreshToken;
const expiration = currentUser.expiration;
var moment = require('moment');
var now = moment();
if (moment(now).isAfter(expiration)) {
authenticationService.createAccessTokenByRefreshToken(refreshToken).then((res) => {
authorization.Authorization = `Bearer ${res.data.token}`;
return Promise.resolve(authorization);
});
}
else {
authorization.Authorization = `Bearer ${currentUser.token}`;
return Promise.resolve(authorization);
}
//return { Authorization: `Bearer ${currentUser.token}` };
} else {
return Promise.reject(authorization);
}
}