【发布时间】:2018-05-19 15:28:44
【问题描述】:
我正在编写一个使用 Passport 和 Saml-Stategy 的 NodeJS / Express 后端。我使用外部身份提供程序和 VueJs 作为前端。
如果我从浏览器(Chrome + IE)向后端发出 API 请求,一切正常。请求进入后端,作为 GET 请求进入 IdP,然后通过身份验证返回。
但是,如果我加载执行相同请求的 VueJs 应用程序,则护照会发出一个 CORS 飞行前 (OPTIONS) 请求,该请求从 IdP 返回为 404,因为不支持 OPTIONS。我试过Vue-Resource和Axios,结果都一样。
很遗憾,我无法更改 IdP 上的任何设置。但是为什么我在后端的护照对请求的处理方式不同呢?有任何想法吗?
我比较了来自 API 调用和 VueJ 的请求标头,但我找不到任何会导致预检的标头。
存储库:https://github.com/tmschbgr/NodePassportExample
版本:
- 节点:8.9.0
- 快递:4.16.2
- 护照:^0.4.0
- 护照-saml:^0.31.0
- Vue:^2.4.4
- Axios:^0.17.1
【问题讨论】:
标签: javascript node.js cors passport.js axios