Rest 余烬应用程序的生产构建工作正常,但当使用余烬服务时,cookies不会发送到api
我有一个restapi在Rest 余烬应用程序的生产构建工作正常,但当使用余烬服务时,cookies不会发送到api,rest,cookies,ember.js,ember-cli,Rest,Cookies,Ember.js,Ember Cli,我有一个restapi在localhost:8001/my_-app/API/上运行,我有一个apache设置来从localhost/my_-app/API反向代理它。那很好 为了拥有对api执行任何操作的权限,它需要我的会话cookie、我的csrftokencookie和aX-csrftokenHTTP头。我已将适配器/application.js配置如下: 适配器/application.js 如果我执行一个ember build-prod并将dist目录的内容复制到/var/www/my
localhost:8001/my_-app/API/
上运行,我有一个apache设置来从localhost/my_-app/API
反向代理它。那很好
为了拥有对api执行任何操作的权限,它需要我的会话cookie、我的csrftoken
cookie和aX-csrftoken
HTTP头。我已将适配器/application.js
配置如下:
适配器/application.js
如果我执行一个ember build-prod
并将dist
目录的内容复制到/var/www/myApp/
,apache为我的应用程序提供服务,并且工作正常
当我尝试使用ember cli的内置开发服务器时,我遇到了问题。我的api有403个错误。结果表明,在发送X-CSRFToken
头时,我的cookie都没有发送。如果我查看我的chrome开发者工具,就会发现我有两个cookie——它们根本不在请求头中。他们都来自本地主机,所以我有点困惑
另外,我目前在rest后端设置中有CORS。以下是我目前收到的邮件头:
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:4200
我想既然allow credentials==true
和allow origin!=*代码>应该允许使用cookies。唉
以下是我的API_主机和contentSecurityPolicy:
config/environment.js
如上所示,api请求是通过我的反向代理发送的。我玩过余烬发球--proxy
两个都试过http://localhost:80/
和http://localhost:8001/
但两者都没有帮助。我还尝试过设置我的开发ENV.API\u HOST='class2]http://localhost:8001/';代码>有和没有各种代理值
这个编辑、构建、部署、刷新我的浏览器、测试和重复过程非常缓慢,而且变老非常快
有人能给我解释一下如何让ember cli开发服务器正确访问我的rest api吗?localhost:80和localhost:8001是不同的主机,因为cookie同源策略是不同的。@elithrar感谢您的回复。我编辑并添加了我的environment.js
中的“development”片段。对于在本地主机上运行的开发服务器,我的内容安全策略看起来是否正常;4200,并且正在通过localhost:80反向代理我的localhost:8001后端?开发环境中的CSP头只会触发警告,所以它们并不重要。但是CSP不会影响cookies——它们是不相关的。@elithrar是的,按照我的配置方式,我甚至不再收到警告。如果不是CSP,而且我已经正确设置了CORS(希望如此),你知道为什么我的“本地主机”cookie没有从我的余烬服务(localhost:4200)站点发送吗?
Access-Control-Allow-Credentials: true
Access-Control-Allow-Origin: http://localhost:4200
if (environment === 'development') {
ENV.APP.LOG_TRANSITIONS = true;
ENV.APP.API_HOST = "http://localhost"
ENV.contentSecurityPolicy = {
'default-src': "'none'",
'script-src': "'self' 'unsafe-eval' localhost",
'font-src': "'self'",
'connect-src': "'self' localhost",
'img-src': "'self'",
'style-src': "'self'",
'media-src': "'self'"
};
}