на бэк для получения данных авторизованного пользователя, но если токен истек, срабатывает рефреш и в этот момент проект падает, как на скрине, но рефреш отработал
сталкивался кто ?
вот обертка
const refreshTokenApi = async () => {
await apiFetch('/api/v1/auth/refresh', {
method: 'POST',
retry: 0,
body: {
refreshToken: auth.refreshToken
}
})
.then((res) => {
setAccessToken(res.accessToken);
setRefreshToken(res.refreshToken);
options.headers = {
...options.headers,
Authorization: `Bearer ${res.accessToken}`
};
});
};
return apiFetch(url, {
async onResponseError({ response }) {
if (response.status === 401 && auth.refreshToken) {
try {
await refreshTokenApi();
return apiFetch(url, options);
} catch (refreshError) {
clearAuth();
}
}
}
});
!proccess.server
не помогает
Pinia hydration ignore -> Google
у меня инициализация через плагин import { authService } from '~/shared/services/v1/auth.service'; import { useAuthStore } from '~/store/auth'; export default defineNuxtPlugin(async (nuxtApp) => { console.log(nuxtApp.vueApp); const { getRefreshToken, getAccessToken, setAccessToken, setRefreshToken, setAuthUser } = useAuthStore(); const accessToken = getAccessToken; const refreshToken = getRefreshToken; if (process.client && (accessToken || refreshToken)) { setAccessToken(accessToken); setRefreshToken(refreshToken); await authService.getAuthUser().then((response) => { setAuthUser(response, true); }); } });
Я понимаю. Ровно такое же поведение и у меня. Тебя подводит простановка токенов в стор. Ты используешь пинию. Она ждёт полной гидрации приложения. Отсюда и ошибки
Обсуждают сегодня