Я успешно настроил аутентификацию в своем приложении AspNetCore API с использованием файлов cookie JWT + HttpOnly, вдохновленных этим документом и этой темой.
Теперь япытается интегрировать функцию обновления токена.Я нашел этот учебник, но он основан только на аутентификации JWT, и я застрял в точке, где я должен добавить Token-Expired заголовок к ответу:
options.Events = new JwtBearerEvents
{
OnAuthenticationFailed = context =>
{
if (context.Exception.GetType() == typeof(SecurityTokenExpiredException))
{
context.Response.Headers.Add("Token-Expired", "true");
}
return Task.CompletedTask;
}
};
Поскольку я использую аутентификацию на основе файлов cookie, я использую событие OnRedirectToLogin вместо события OnAuthenticationFailed иметод context.Exception.GetType () мне недоступен.Поэтому я не знаю, как выяснить, нужен ли токен обновления.
Как мне решить эту проблему?
ОБНОВЛЕНИЕ 1
Этовот что я на самом деле делаю:
options.Events.OnRedirectToLogin = context =>
{
if (context.Request.Path.StartsWithSegments("/api"))
context.Response.StatusCode = (int)HttpStatusCode.Unauthorized;
else
context.Response.Redirect(context.RedirectUri);
return Task.FromResult(0);
};
Здесь я хочу добавить заголовок Token-Expired , но на основании чего?