Как правильно обновить токен, используя JWT + HttpOnly Cookie? - PullRequest
0 голосов
/ 25 сентября 2019

Я успешно настроил аутентификацию в своем приложении 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 , но на основании чего?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...