Net Core 5 – Как я могу принудительно выйти из системы с внешнего сайта Oauth2?

#c# #.net #.net-core #oauth-2.0

Вопрос:

Мое веб-приложение net core обращается к внешнему сайту (www.restream.io ) для получения / обновления токенов, которые могут использоваться в различных вызовах API для этого сайта. Если токены не существуют или недействительны, сайту требуется войти в систему, что делает мое приложение, открывая страницу входа в Oauth2 внешнего сайта, открыв этот URL:

https://api.restream.io/login?response_type=codeamp;client_id=[clientid]amp;redirect_uri=redirectURI]amp;state=[randomOpaqueToken]

По завершении успешного входа в систему внешний сайт закрывает страницу входа в систему и перенаправляет обратно в мое веб-приложение с кратковременным кодом авторизации OAuth2, который затем можно использовать в вызове API для получения доступа и обновления токенов. Однако он не выводит пользователя из системы, поэтому, если пользователь повторно открывает сайт, он все равно входит в систему, что не очень хорошо с точки зрения безопасности, а также вызывает другие проблемы. На сайте нет переключателя «запомнить меня» на странице входа в систему, а единственная функция выхода из API отменяет токены, что противоречит цели упражнения. Есть ли какой-либо способ принудительно выйти из системы с помощью C #?

Комментарии:

1. Хм, вы уверены, что пользователь может получить доступ к сайту после этого процесса и все равно войти? Токен должен быть привязан к клиенту (вашему веб-приложению), а не к пользователю. Но если это так, то я бы сказал, предлагает ли их API возможность выхода из системы для вашего вызова?

2. @Kit — Да, я уверен, что пользователь все еще вошел в систему, и нет возможности выхода из API без отзыва токенов.