Я могу легко войти в систему и получить соответствующую информацию; X-Amzn-Oidc-Accesstoken,
Код: Выделить всё
X-Amzn-Oidc-IdentityИспользуя токен доступа, я могу затем соответствующим образом декодировать и аутентифицировать пользователя в своем приложении .NET 6.
Однако при выходе из системы я начинаю с отзыва своих токенов с помощью AdminUserGlobalSignOutAsync в AWS SDK (который работает без ошибок) -
Код: Выделить всё
var request = new AdminUserGlobalSignOutRequest
{
UserPoolId = "my-userpool-id",
Username = "username"
};
var response = await cognitoClient.AdminUserGlobalSignOutAsync(request);
Код: Выделить всё
var headersToRemove = new List
{
"X-Amzn-Oidc-Accesstoken",
"X-Amzn-Oidc-Identity",
"X-Amzn-Oidc-Data"
};
foreach (var header in headersToRemove)
{
if (Request.Headers.ContainsKey(header))
{
Request.Headers.Remove(header);
}
}
foreach (var cookie in Request.Cookies.Keys)
{
Response.Cookies.Delete(cookie);
}
Код: Выделить всё
https://{domain}.auth.{region}.amazoncognito.com/logout?response_type=code&client_id={clientid}&logout_uri={redirect_uri}&scope=openid
Я проверил браузер и увидел, что заголовки и файлы cookie, похоже, были восстановлены, и единственный способ вернуться на домашнюю страницу моего приложения — это если ALB получил запрос, увидел действительный токен и затем пропустил меня.
Я нашел этот фрагмент документации, который заявляет
Когда приложению необходимо выйти из системы аутентифицированного пользователя, оно должно установить срок действия файла cookie сеанса аутентификации равным -1 и перенаправить клиента на конечную точку выхода из IdP.
Чего мне не хватает, чтобы токены/файлы cookie не были отозваны? Я понимаю, что здесь я не имею дело с токеном обновления, поскольку он не отправляется обратно в заголовки аутентификации после входа в систему. Я также убедился, что в моем клиенте приложения включена опция «Включить отзыв токена».
Кроме того, срок действия токенов обновления, идентификатора и доступа в моем клиенте установлен на 1 день (хотя я думаю, что здесь важен только токен доступа), однако я думал, что это не будет иметь значения после использования глобального выхода?
Подробнее здесь: https://stackoverflow.com/questions/772 ... ith-an-alb
Мобильная версия