Невозможно обновить куки с новым набором токенов

Я создал сервер авторизации на основе IdentityServer4. Оно работает. Но когда я пытаюсь обновить токены, используя обратный канал, запрос не выполняется в момент вызова метода AuthenticateAsync() для HttpContext. По сути, вызов AuthenticateAsync() или SignInAsync() для HttpContext завершается неудачно. Хуже того, даже когда я перевожу вызов в блок try...catch, исключение не выдается.

Я попытался ввести IHttpContextAccessor как Scoped или Singleton, но тот же результат. Спешу добавить, что сервер авторизации возвращает обновленные токены, но именно в момент обновления куки новыми клиентскими токенами в клиентском приложении процесс останавливается. Я подозреваю, что проблема связана с контекстом, но я не могу указать на точную проблему.

Ниже приведен фрагмент кода

var accessToken = string.Empty;
var currentContext = _context.HttpContext;

// this line works perfectly
var refreshToken = await 
currentContext.GetTokenAsync(OpenIdConnectParameterNames.RefreshToken);

// the auth service returns the tokens in the stringified data object 
var tokens = JsonConvert.DeserializeObject<List<AuthenticationToken>>(data);

if (tokens.Any())
{
    // this is the line that fails
    var currentAuthenticateResult = await 
        currentContext.AuthenticateAsync("Cookies");

    currentAuthenticateResult.Properties.StoreTokens(tokens);

    // even this fails
    await currentContext.SignInAsync("Cookies", 
        currentAuthenticateResult.Principal, 
        currentAuthenticateResult.Properties);

 }

Клиентское приложение написано на.NET Core 2.1

Мне нужна помощь.

0 ответов

Другие вопросы по тегам