Я запускаю приложение ASP web API
с Angular 5
приложением переднего плана, я использую ASP Identity
для аутентификации.
Теперь мое приложение имеет функцию блокировки пользователи , но, поскольку я использую токены доступа, я не могу найти способ выйти из системы, как только они заблокированы, если я не использую дурную практику (упомянуто в последних строках вопроса).
Существует метод Verify в серверном приложении API, он проверяет токен доступа, если он действителен при каждом вызове службы из приложения Angular,Конечно, этот токен доступа не изменяется, когда пользователь заблокирован, поэтому пользователь продолжает доступ до тех пор, пока не истечет срок действия его токена доступа.
Как лучше всего это преодолеть?
плохая практика, которую я 'm с использованием:
Verify() {
var db = new ApplicationDbContext();
var user = db.users.Where(a => a.UserName == User.Identity.Name).FirstOrDefault();
if(!user.isActive) { return Ok("Blocked")}
else {
if (User.Identity.IsAuthenticated) { return Ok("Authorized"); }
else return Ok("Not Authorized");
}
}
, но функция Verify вызывается много раз, поэтому поиск в базе данных каждый раз не является хорошим решением.
-> Чтобы уточнить выход в Angularприложение сначала очищает токен доступа от локальногохранилище, затем перенаправляет на страницу входа, так что это не имеет никакого отношения к Web Api
-> Скажите, пожалуйста, нужно ли уточнить какие-либо вопросы в моем вопросе