使用 symfony 4.4 进行 mercure /hub 调度更新工作正常,直到我不尝试使用带有 mercureAuthorization cookie 的凭据。
一旦我在 EventSource 中添加 {withCredentials: true},firefox 就会以“CORS missing”踢出事件源请求连接(而 chrome 不会)
'same origin' policy don't allow consulting 'http://localhost:3000/.well-known/mercure ... ' Reason: CORS header 'Access-Control-Allow-Origin' missing
另外,我应该让 mercureAuthorization cookie 从我的页面请求传递到事件源请求,但事实并非如此。
这是我的主页 cookie:
Set-Cookie: mercureAuthorization=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJtZXJjdXJlIjp7InN1YnNjcmliZSI6WyJodHRwOlwvXC9ub3RpZnkuY29tXC9wYXJhbmdvblwvdGVhbSJdfX0.e5YOGcOx-s-8nn2lbseqcVlk18dVEvgZIoKrDCEureA; path=/.well-known/mercure; httponly; samesite=strict;
我的事件源请求
Request URL: http://localhost:3000/.well-known/mercure?topic=http://notify.com/
内部没有 Set-Coockie。
编辑:我终于设法通过在同一个域上工作来解决它!所以知道我运行美居服务器:
--adress:'www.mydomain.test:3000/.well-known/mercure ... '
发帖自
'www.mydomain.test/' for exemple
设置 Cookie:
'return new Cookie('mercureAuthorization', $token,
(exp) 0,
(path) '/.well-known/mercure',
(domain) null,
(secure) false,
(httponly) true,
(raw) false,
(same-site) 'Strict'
);'