Какую стратегию аутентификации я должен использовать для своего API?
У меня есть клиентское приложение angular-js. И у меня есть серверный API nodejs. Клиентское и серверное приложения расположены в разных доменах. Клиентский интерфейс использует API для получения или публикации некоторых данных. Также на стороне клиента нужно получать изображения со стороны сервера и показывать их в браузере.
Я использую модуль паспорта nodejs для аутентификации. Я не знаю, какая стратегия аутентификации лучше для меня. Я думаю, что есть два типа стратегий аутентификации: на основе маркеров и на основе файлов cookie. И я думаю, что оба типа бесполезны в моем случае
Если я использую стратегии на основе токенов, я должен отправлять заголовок аутентификации с токеном в каждом запросе к API. Я могу отправлять заголовки в запросах AJAX, но если я хочу показать изображение, расположенное на стороне сервера, у меня проблема. Поскольку браузер не будет отправлять заголовки в<img>
тег.
Если я использую куки, то у меня нет проблем с изображениями. Но у меня проблемы с AJAX-запросами. Поскольку cookie-файл сеанса хранится в домене приложения на стороне сервера. И если я отправляю запросы AJAX из клиентского домена, то я должен отправлять куки-файлы с каждым запросом. Я использую XmlHttpRequest для AJAX, и я должен использоватьwithCredentials опция для отправки куки. Но в междоменных запросах браузеры будут отправлять предварительный (OPTION) запрос перед каждым AJAX-запросом. И браузеры не будут отправлять куки с опцией запроса. Это проблема для меня, потому что серверный API не может сделать правильный ответ на запрос OPTION, если он не будет авторизован.
Какое решение принято?