Вообщем у меня есть бекенд на asp.net core web api.И есть клиет(обычная html страница).Сделал авторизацию на jwt токенах.Все работает нормально и токен приходит.Вопрос в том, что делать дальше?То есть у меня есть метод на контроллере который проверяет подлинность токена и должен что-то сделать.Но что именно?Он должен вернуть файл html страницы на которою хочет попасть пользователь?Или сделать редирект?Как тогда запретить доступ на ту страницу не авторизированым пользователям?Фронт и Бек лежат по разных папках, не MVC.Как тогда это все правильно организовать?
Хранить в модели пользователя права доступа, помечать нужные конторллеры подходящими правами и управлять доступом к ним (к примеру если прав нет редирект на 403)
В Asp.Net оно уже реализовано чтобы не изобретать колесо..
тут есть подробнее https://habr.com/ru/post/322566/
Это понятно, но там используется MVC.Из Рейзора кидается запрос и возвращается View.Но равзе так можно сделать когда ASP.NET используется как APi?То есть как мне вернуть страницу на которою должен попасть пользователь?
Sneiksus, если у вас стоит на api атрибут авторизации то вам прийдет 403 ошибка и возможно json с описанием. Это как вы напишете. На клиенте вы ловите эту ошибку и отображаете окошко логина ну или тупо делаете переадресацию
Sneiksus, Клиент с сервером общаеться через апи и получает json?
Если так то возвращаем json описывающий редирект например {redirectTo:"403"}
на клиенте при выполнении запроса создаем midlware (промежуточный уровень обработки).
Например для axios - https://emileber.github.io/axios-middleware/#/
И редиректим отдельно.
Если не так то опишите как работает клиент..
Sneiksus, Да но тогда стоит юзать роутинг и фреймворк для обеспечения этих возможностей аля react или vue, но думаю проще для начала использовать blazor там сейчас тоже сделали плохую динамическую подгрузку через SignalR.
Если есть время то стоит разобраться с той же vue (jquery это не лучшее решение для полноценного приложения) https://ru.vuejs.org/v2/guide/index.html
и роутинг https://router.vuejs.org/ru/
Владимир Коротенко,@fan92rus, Окей но что тогда мешает пользователю прямо в адресной строке написать тот путь и перейти.Он же не будет уже кидать запрос на контроллер где можно проверить аутентифицирован ли он?Как вот этого избежать?
Он должен вернуть идентификатор сессии такой-же какой возвращается при обычном логине. Тоесть - сверяете токен с базой токенов и открываете сессию для него - идентификатор можно вернуть как в JSON так и в Cookie - лучше сделать и так и так. Потом при последующих запросах в рамках сесиии - используется идентификатор сессии.