У меня есть конечная точка обновления в моем API, но Я не могу получить к нему доступ, вот мой метод интерфейса:
Код: Выделить всё
const headers = { 'Content-Type': 'application/json' }; console.log("Refreshing...");
return this._httpClient.post(`${this.baseUrl}/refresh`, {}, { headers });}
Код: Выделить всё
if (accountService.currentUser()) {
return of(true); // Allow access if user is authenticated
} else {
// Fetch the current authentication state
return accountService.getAuthState().pipe(
switchMap((authState) => {
if (!authState.isAuthenticated) {
// If not authenticated, try refreshing the token
return accountService.refreshAccessToken().pipe(
map(() => {
// After refreshing, recheck the authentication state
return true; // Token refresh was successful, allow access
}),
catchError(() => {
// If refreshing fails, redirect to login
router.navigate(['/account/login'], { queryParams: { returnUrl: state.url } });
return of(false);
})
);
} else {
// If authenticated, allow access
return of(true);
}
}),
catchError(() => {
// Handle any errors (e.g., network issues) and redirect to login
router.navigate(['/account/login'], { queryParams: { returnUrl: state.url } });
return of(false);
})
);
}
Код: Выделить всё
services.Configure(options =>
{
options.TokenLifespan = TimeSpan.FromSeconds(3);
});
Я пытался добавить пустой {refreshToken: '' в тело запроса, но это тоже не работает, попробовал чтобы прочитать документ Microsoft...
Подробнее здесь: https://stackoverflow.com/questions/790 ... identity-8