Как обрабатывать токен доступа с истекшим сроком действия в ядре asp.net, используя токен обновления с OpenId Connect

Я настроил сервер ASOS OpenIdConnect с помощью основного приложения mvc asp.net, которое использует «Microsoft.AspNetCore.Authentication.OpenIdConnect»: «1.0.0 и« Microsoft.AspNetCore.Authentication.Cookies »:« 1.0.0 ». Я проверил рабочий процесс «Код авторизации», и все работает.

Клиентское веб-приложение обрабатывает аутентификацию должным образом и создает файл cookie, в котором хранятся id_token, access_token и refresh_token.

Как заставить Microsoft.AspNetCore.Authentication.OpenIdConnect запрашивать новый access_token, когда он истекает?

Основное приложение mvc asp.net игнорирует просроченный access_token.

Я хотел бы, чтобы openidconnect видел просроченный access_token, а затем сделал вызов, используя токен обновления, чтобы получить новый access_token. Также следует обновить значения файлов cookie. Если запрос на обновление токена завершится неудачно, я ожидаю, что openidconnect "выйдет" из cookie (удалит его или что-то еще).

app.UseCookieAuthentication(new CookieAuthenticationOptions
        {
            AutomaticAuthenticate = true,
            AutomaticChallenge = true,
            AuthenticationScheme = "Cookies"
        });

app.UseOpenIdConnectAuthentication(new OpenIdConnectOptions
        {
            ClientId = "myClient",
            ClientSecret = "secret_secret_secret",
            PostLogoutRedirectUri = "http://localhost:27933/",
            RequireHttpsMetadata = false,
            GetClaimsFromUserInfoEndpoint = true,
            SaveTokens = true,
            ResponseType = OpenIdConnectResponseType.Code,
            AuthenticationMethod = OpenIdConnectRedirectBehavior.RedirectGet,
            Authority = http://localhost:27933,
            MetadataAddress = "http://localhost:27933/connect/config",
            Scope = { "email", "roles", "offline_access" },
        });

Ответы на вопрос(2)

Ваш ответ на вопрос