【发布时间】:2014-05-20 02:04:06
【问题描述】:
我正在创建一个简单的 AngularJS 应用程序,它使用 Alfresco 作为后端,而不是提供的 REST API。
首先,通过返回令牌 (alf_ticket) 的相应服务执行身份验证,并且该令牌必须在身份验证成功后的后续请求中作为 URL 参数发送。
就我而言,Alfresco REST API 不支持将令牌作为 HTTP 标头的一部分接收;不过,这将是最好的选择,因为通过配置 $http 默认值来解决问题很简单,仅提一个我能想到的选项。
这种场景下,恐怕只能把每次请求中的alf_tickettoken作为参数发送给后端,例如:
GET /alfresco/s/api/people/admin/preferences?alf_ticket=TICKET_f79aa9eb2f839cefd1e1c7e4f579379ec06c33ed
我知道$resource 提供了一种默认参数机制,但这些是每个 $resource 实例的特定默认值。
到目前为止,我一直在考虑以下几种方法:
- 为每个 $resource 实例使用参数化 URL(例如
/alfresco/s/api/people/admin/preferences:alf_ticket);然后通过parameterDefault提供从当前会话数据中获取令牌的适当函数。 - 类似于this blog post 中描述的方法,最初是受到另一个Stackoverflow question 的启发。但我觉得它有点干扰,所以我可能会选择选项 1。
理想情况下,我会寻找 $resource 或 $http 的全局配置,类似于配置默认标头 ($httpProvider.defaults.headers) 的方式,但恐怕两者都没有提供这样的功能服务...
【问题讨论】:
标签: angularjs api http rest alfresco