【发布时间】:2015-09-11 09:48:04
【问题描述】:
我最初编写了一个 REST API 来处理以前编写的移动应用程序。移动程序员要求我在登录时生成一个auth_token,他将作为每个需要身份验证的请求的标头传递。此 API 在 api.example.com 运行。
后来,我被委托编写一个与此 API 通信的 AngularJS 应用程序,所以我必须在后端使用 Access-Control-Allow 标头来使 OPTIONS 请求与 CORS 兼容 CORS 所以我的浏览器允许连接(看起来像 iOS 不查找此标头)。这个应用程序在one.example.com 运行。
现在,我必须编写第二个 AngularJS 应用程序,该应用程序将在 two.example.com 运行,第三个计划在不久的将来在 three.example.com 运行。
我的问题是我的Access-Control-Allow-Origin 标头看起来像这样:
Access-Control-Allow-Origin: http://one.example.com:80
* 是不允许的,我也无法将此标头设置为多个来源。据我所知,我有两个解决方案:
与当前的
cookie-based并行实施token-based身份验证。我正在考虑this。这当然需要一些我愿意节省的时间。向请求者发送标头或参数到 API 端点,在 OPTIONS 请求和服务器端识别应用程序,相应地生成 CORS 标头。我什至不知道这是否可能,这看起来很糟糕。
有更好的想法吗?
【问题讨论】:
-
API 使用什么语言?
-
@Yagiz PHP/Laravel。这有什么关系?
标签: angularjs api cookies cross-domain