Member 9129971 Ответов: 1

Как в файле signout в веб-API?


У меня есть c# webapi, имеющий angular web и приложения для android, ios.Я собираюсь использовать простую аутентификацию на основе токенов.Токен выдается во время входа в систему и используется для будущих запросов.

Проблема в том, что как я могу девальвировать/выйти из системы токен специфичный для разных устройств, таких как web(это также включает запрос из разных браузеров) и mobile.

Клиент может войти в систему из интернета и мобильного телефона одновременно, а также в интернете клиент может войти в систему с помощью нескольких браузеров или нескольких окон учетной записи в браузере или окне инкогнито. Я знаю, что эта работа может быть выполнена на стороне клиента, но как я могу сделать это и на стороне сервера?

Как серверная сторона знает, откуда пришел запрос для конкретного пользователя.Так что он может удалить этот токен из базы данных, чтобы выйти из системы пользователя.

Что я уже пробовал:

Пробовал jwt, saml, но не смог найти решение проблемы

1 Ответов

Рейтинг:
1

Dave Kreskowiak

Это полностью зависит от WebApi. Вам придется ознакомиться с документацией соответствующего API, чтобы узнать, как это сделать и поддерживается ли он вообще.


Member 9129971

Я думаю, что вы не поняли моего вопроса, может быть, я не очень хорошо объяснил.Actullay я разрабатываю этот api, и я знаю, что в настоящее время нет никакого способа сделать это, так как я могу это сделать, вы можете показать любой пример кода, как это сделать.

Dave Kreskowiak

Хорошо, тогда это полностью зависит от вас, как вы справитесь с этим. Вы можете просто поместить метод выхода в свой API для обработки удаления токена из базы данных или просто позволить токену истечь и удалить его, если текущая дата / время больше даты/времени истечения срока действия. Как вы это сделаете, полностью зависит от вас.

Member 9129971

тогда как я буду различать пользователя, вошедшего в несколько браузеров или режим инкогнито , там будет 3,4 токена этого пользователя одновременно, как я узнаю, какой токен удалить?(Я не прошу выйти из системы переданный токен, я хочу реализовать ту же функциональность, что и сеансы на стороне сервера webforms, то есть они знают , из какого браузера поступает запрос, они используют что-то вроде сессионного файла cookie).Кроме того, я не хочу делать всю эту работу с нуля, так как у меня очень мало времени. так же есть ли какой-либо встроенный механизм в .net web api , такой как owin, auth или formsauthentication.

Dave Kreskowiak

Клиентский код должен публиковать каждый запрос со своим токеном или каким-то идентификатором для него в базе данных. Я думал, что это будет очевидно.

Для этого нет встроенного метода.