Как обрабатывать токен доступа с истекшим сроком действия в ядре 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" },
});