Stormpath 当凭证标志为真时,通配符“*”不能用于 'Access-Control-Allow-Origin' header

Stormpath A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is tru

我正在使用 Stormpath,我想将我的 API 与客户端代码分开(Angular,使用 Stormpath 的 angular-sdk)。这意味着 API 将位于与客户端不同的 sub-domain 上。我一这样做,就遇到了错误;

A wildcard '*' cannot be used in the 'Access-Control-Allow-Origin' header when the credentials flag is true

我通过设置 Access-Control-Allow-Origin 将特定域添加到我的快速 CORS 配置中来解决此问题,但现在 API 只是不会响应来自浏览器的点击。

所以我有点困惑,我希望 API 打开但仍然使用 Stormpath 进行身份验证,但也许那不可能?

Stormpath AngularJS SDK 有一个示例应用程序,向您展示如何让 CORS 与 AngularJS 和 Express 一起工作。

https://github.com/stormpath/stormpath-sdk-angularjs/tree/master/example/cors-app

您要查找的代码在 server.jsstarting at line 22

var cors = require('cors');
...
/*
  The apiService is your API that you want to protect with
  Stormpath.  We use the CORS module to whitelist the website
  domain, thus allowing it to communicate with the API domain
 */

var apiService = express();

apiService.use(cors({
  origin: websiteDomain,
  credentials: true
}));

apiService.use(stormpath.init(apiService,{ }));