Я новичок в angular, и я хотел бы знать, возможно ли это. У меня есть SSO, использующий аутентификацию форм, которую я использую для аутентификации в веб-приложениях MVC. Могу ли я использовать эту существующую аутентификацию для обеспечения единого входа для моих новых веб-приложений angular? Если это возможно, пожалуйста, дайте мне несколько идей о том, как это реализовать. Заранее спасибо.
Мы используем токен (JWT), который передается клиентскому приложению angular и используется для аутентификации будущих запросов.
На высоком уровне мы выполняем аутентификацию с помощью форм, и при успешном входе в систему мы отвечаем клиенту JWT, который хранится в хранилище сеансов. Затем приложение перенаправляется в наш угловой SPA, в котором есть Guard, который загружает токен из хранилища и аутентифицирует сеанс или перенаправляет пользователя обратно на страницу входа, если JWT отсутствует или срок его действия истек.
Мы используем эту библиотеку, чтобы помочь с «вещами» JWT на угловой стороне (проверка срока действия и т. д.). https://github.com/auth0/angular2-jwt
Вы можете увидеть пример здесь: https://code-maze.com/authentication-aspnetcore-jwt-1/
@wickdninja Спасибо за ответ и идеи. У меня возникли трудности с сохранением токена JWT в локальном хранилище в контроллере MVC. Можете ли вы дать мне какие-либо примеры того, как сделать это с помощью контроллера MVC. Спасибо
Контроллер MVC не сохраняет в локальном хранилище. Вам нужно будет иметь действие контроллера, которое возвращает JWT в угловое приложение. Приложение angular на стороне клиента хранит токен и использует его для выполнения последующих вызовов API к вашим контроллерам API.
Хороший образец, демонстрирующий этот подход, можно увидеть здесь: code-maze.com/authentication-aspnetcore-jwt-1.
Спасибо @wickdninja за пояснение и ссылку. Это было большим подспорьем.
Как вы обрабатывали токен в домене в угловом приложении?