【发布时间】:2020-04-28 12:17:43
【问题描述】:
所以关于这个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
}
}
});
根据他们的docs,他们使用 pusher 库 - 但没有迹象表明它实际上会访问 pusher 网站。而且我不需要任何推送者凭据,因为这些都是伪造的。
问题很简单:
在没有
SameSite属性的情况下设置了与http://support.pusher.com/ 的跨站点资源关联的cookie。未来版本的 Chrome 将仅通过设置为SameSite=None和Secure的跨站点请求传递 cookie。您可以在开发人员工具中的 Application>Storage>Cookies 下查看 cookie,并在 https://www.chromestatus.com/feature/5088147346030592 和 https://www.chromestatus.com/feature/5633521622188032 上查看更多详细信息。
这都是堆栈溢出。
我disableSats 虽然是的,websockets 仍然可以正常运行,但最终 chrome 会像“不”一样。所以我不知道这是一个推送者问题,还是 laravel websockets 问题。
有人对我可以做什么或尝试做什么有任何想法吗?我已经尝试在上述配置中设置 forceTLS: true 并且这似乎有效 - 但是网络套接字不会连接。
我担心有一天我的应用程序会停止工作,因为我们依赖 websockets 来提供很多功能,这是目前最简单、最好的库之一,不需要数天的研究和设置。
【问题讨论】:
-
您可以在隐身会话中尝试此操作,以确保您不会先访问任何 Pusher 网站吗?对我来说,
support.pusher.com的 cookie 听起来您可能已经访问了浏览器中的支持论坛,并且那里有一个 cookie 仍在发送到任何pusher.com域的请求。 -
隐身模式没有按规定显示警告 I. 上面链接的问题。我从页面中删除了所有 cookie,重新加载后仍然收到警告 @rowan_m
标签: php laravel websocket pusher pusher-js