因此,关于这个 sameSite 业务存在很多问题,但是在涉及Laravel Websockets时我找不到任何答案。他们的文档中没有关于此的内容。
所以我想我会在这里问一下,看看你们有没有什么想法。
考虑以下配置:
import Echo from 'laravel-echo'
window.Pusher = require('pusher-js');
window.Echo = new Echo({
broadcaster: 'pusher',
key: process.env.MIX_PUSHER_APP_KEY,
wsHost: window.location.hostname,
wsPort: 6001,
wssPort: 6001,
disabledStats: true,
encrypted: false,
enabledTransports: ['ws', 'wss'],
namespace: 'App',
auth: {
headers: {
'X-CSRF-TOKEN': token.content
}
}
});
根据他们的文档,他们使用 pusher 库 - 但没有迹象表明它实际上会访问 pusher 网站。而且我不需要任何推送凭据,因为这些都是伪造的。
问题很简单:
与http://support.pusher.com/上的跨站点资源关联的 cookie设置为没有该
SameSite
属性。SameSite=None
未来版本的 Chrome 将仅在使用和设置时提供带有跨站点请求的 cookieSecure
。您可以在 Application>Storage>Cookies 下的开发人员工具中查看 cookie,并在https://www.chromestatus.com/feature/5088147346030592和https://www.chromestatus.com/feature/5633521622188032查看更多详细信息。
这是整个堆栈溢出。
我disableSats
虽然是的,但 websockets 仍然可以正常运行,但最终 chrome 会像“不”一样。所以我不知道这是推送者发行者,laravel websockets 问题还是什么。
有人对我可以做什么或尝试做什么有任何想法吗?我已经尝试forceTLS: true
在上面的配置中进行设置,这似乎有效 - 但是网络套接字将无法连接。
我担心有一天我的应用程序会停止工作,因为我们依赖 websockets 来提供很多功能,这是目前最简单、最好的库之一,不需要数天的研究和设置。