Я новичок в AngularJS и пытаюсь оценить его для моего нового веб-приложения.
Требование:
У меня будет один веб-API ASP.NET, который будет потребляться с Android, iPhone и веб-приложения (ASP.NET MVC). Идентификация ASP.NET будет реализована в Web API. Все три приложения вызывают метод входа в Web API для получения токена аутентификации.
Проблема:
Моя проблема заключается в том, как заставить ASP.NET MVC проверять на стороне сервера работу (синхронизироваться с веб-API, поэтому мне не нужно входить в ASP.NET MVC отдельно), а Angular делает вызов для получения HTML-шаблона/вида, файлов JavaScript или других ресурсов. Я просмотрел многие статьи и блоги на AngularJS, но все еще не могу найти модель безопасности, которая соответствует моим требованиям.
Возможное решение:
Было бы неплохо сделать запрос на вход в приложение ASP.NET MVC напрямую, а не в веб-API напрямую, и приложение ASP.NET MVC вызовет веб-API для входа в систему и после аутентификации сохранит токен аутентификации в сеансе плюс создать файл FormsAuthentication cookie, а в файлах cookie сохранить зашифрованный токен аутентификации. Кроме того, установите токен auth в ng-init где-нибудь в HTML, чтобы иметь токен в области AngularJS. Теперь, когда AngularJS пытается позвонить в приложение ASP.NET MVC для получения HTML-кода, выполните аутентификацию/авторизацию пользователя путем сопоставления файлов cookie с реестром с данными auth в сеансе. Кроме того, AngularJS отправит токен auth в заголовке для прямого вызова методов веб-API для всех последующих вызовов обработки данных через веб-интерфейс API.