我最初编写了一个REST API来处理以前编写的移动应用程序。移动程序员要求我在登录时生成auth_token
,他将在每个需要身份验证的请求上作为标头传递。此API在api.example.com
运行。
稍后,我被委托编写一个与此API通信的AngularJS应用程序,因此我必须在后端使用Access-Control-Allow
标头,以使OPTIONS请求与CORS兼容CORS,以便我的浏览器允许连接(看起来像iOS不寻找这个标题)。此应用运行在one.example.com
。
现在,我必须编写第二个将在two.example.com
运行的AngularJS应用程序,并计划在不久的将来three.example.com
进行第三次。
我的问题是我的Access-Control-Allow-Origin
标题如下所示:
Access-Control-Allow-Origin: http://one.example.com:80
*
是不允许的,我也无法将此标头设置为多个来源。所以据我所知,我有两个解决方案:
与当前token-based
版本并行实施cookie-based
身份验证。我正在考虑this。这当然需要一些时间我愿意保存。
向请求者发送标头或参数,以识别OPTIONS请求和服务器端的应用程序的API端点,并相应地生成CORS标头。我甚至都不知道它是否可能,即使这样看起来也很讨厌。
有更好的想法吗?
答案 0 :(得分:0)
如果它们具有相同的来源,例如相同的域(example.com)或相同的子域(1.ex.example.com和2.ex.example.com),则它们可以共享相同的cookie。因为cookie基于域本身。