Как автоматически обновляться при выходе пользователя из веб-приложения?

#c# #angular #typescript #authentication #rbac

Вопрос:

У меня есть веб-приложение, и я могу войти в него как администратор или клиент. Администратор имеет доступ ко всем страницам, клиент имеет доступ только к определенным страницам.

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

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

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

1. Какова ваша логика, лежащая в основе показа/скрытия страниц с ограниченным доступом ?

Ответ №1:

Поскольку ваш вопрос довольно общий, трудно вдаваться в подробности.

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

Вы можете защитить маршруты с помощью охранников аутентификации. В основном мы используем canActivate guards.

Вы можете скрыть элементы на странице, такие как ссылки для навигации по экрану, с помощью *ngIf. Мы создали нашу собственную структурную директиву, чтобы включить в список разрешенных разрешений пользователя и разрешения текущего пользователя и использовать их для определения того, следует ли создавать определенные элементы dom или нет.

Я не уверен в C#, но в Java мы создали аннотацию Spring для проверки разрешений пользователя, когда пользователь пытается получить доступ к конечной точке REST. Я подозреваю, что нечто подобное должно существовать в .ЧИСТЫЙ мир.

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

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