Я создаю простое приложение AngularJS, которое использует Alfresco как back-end поверх предоставленного REST API.
Во-первых, аутентификация выполняется через соответствующую службу, которая возвращает токен (alf_ticket
), и этот токен должен быть отправлен в качестве параметра URL в последующих запросах после успешной аутентификации.
Насколько мне известно, API REST Alfresco не поддерживает получение токена в составе HTTP-заголовков; это был бы лучший вариант, поскольку, поскольку было бы просто решить проблему, настроив, например, $ http defaults, просто упомянуть о некоторых вариантах, о которых я могу думать.
В этом случае, я боюсь, что я могу отправить только alf_ticket
маркер в каждом запросе к фоновым в качестве параметра, например:
GET /alfresco/s/api/people/admin/preferences?alf_ticket=TICKET_f79aa9eb2f839cefd1e1c7e4f579379ec06c33ed
Я знаю $resource обеспечивает механизм для параметров по умолчанию, но это конкретные значения по умолчанию для каждого экземпляра $ resource.
До сих пор я думал о следующих подходах:
- Использование параметризованной URL-адреса для каждого экземпляра $ ресурса (например
/alfresco/s/api/people/admin/preferences:alf_ticket
); затем подайте черезparameterDefault
соответствующую функцию, которая получает токен из текущих данных сеанса. - Нечто похожее на подход, описанный в this blog post, первоначально вдохновленный этим другим Stackoverflow question. Но я считаю, это немного навязчивым, так что, вероятно, я бы с вариантом 1.
В идеале я бы искал глобальную конфигурацию для $resource или $http, подобно тому, как вы можете настроить заголовки по умолчанию ($httpProvider.defaults.headers
), но я боюсь, что такая функциональность не предоставляется ни одной из служб ...
Отличный ответ, который выглядит более чем подходящим решением. Благодарю. –