Невозможно обновить куки с новым набором токенов - PullRequest
0 голосов
/ 09 декабря 2018

Я создал сервер авторизации на основе 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 Core2.1

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

...