Какую стратегию аутентификации я должен использовать для своего API?

У меня есть клиентское приложение angular-js. И у меня есть серверный API nodejs. Клиентское и серверное приложения расположены в разных доменах. Клиентский интерфейс использует API для получения или публикации некоторых данных. Также на стороне клиента нужно получать изображения со стороны сервера и показывать их в браузере.

Я использую модуль паспорта nodejs для аутентификации. Я не знаю, какая стратегия аутентификации лучше для меня. Я думаю, что есть два типа стратегий аутентификации: на основе маркеров и на основе файлов cookie. И я думаю, что оба типа бесполезны в моем случае

Если я использую стратегии на основе токенов, я должен отправлять заголовок аутентификации с токеном в каждом запросе к API. Я могу отправлять заголовки в запросах AJAX, но если я хочу показать изображение, расположенное на стороне сервера, у меня проблема. Поскольку браузер не будет отправлять заголовки в<img> тег.

Если я использую куки, то у меня нет проблем с изображениями. Но у меня проблемы с AJAX-запросами. Поскольку cookie-файл сеанса хранится в домене приложения на стороне сервера. И если я отправляю запросы AJAX из клиентского домена, то я должен отправлять куки-файлы с каждым запросом. Я использую XmlHttpRequest для AJAX, и я должен использоватьwithCredentials опция для отправки куки. Но в междоменных запросах браузеры будут отправлять предварительный (OPTION) запрос перед каждым AJAX-запросом. И браузеры не будут отправлять куки с опцией запроса. Это проблема для меня, потому что серверный API не может сделать правильный ответ на запрос OPTION, если он не будет авторизован.

Какое решение принято?

Ответы на вопрос(1)

Ваш ответ на вопрос