如何将 cookie 从我的 React Native 前端附加到 @rails/actioncable WebSocket 连接?

问题描述 投票:0回答:1

我正在使用 React Native Cookies 库在前端设置 cookie。我注意到我的 Axios 客户端会自动检测 cookie 并将其附加到设置 cookie 后发生的所有请求。

现在我还需要将 cookie 附加到使用 @rails/actioncable 的 WebSocket 连接。我希望它能像 Axios 一样开箱即用,但事实似乎并非如此。我搜索了文档,但找不到任何与此相关的内容,这让我认为使用 @rails/actioncable 要么非常简单,要么不可能。

javascript ruby-on-rails react-native cookies
1个回答
0
投票

这可能就是您所需要的:

document.cookie = "mycookie=value; SameSite=strict;"; 

确保这发生在

ActionCable.createConsumer()
之前。

为什么? Action Cable 所依赖的 WebSocket API 将连接设置委托给用户代理,因此它是浏览器 GET 的默认设置。

但是不幸的是,WebSockets 不执行 CORS,因此如果没有 SameSite=strict 标签,您很容易受到 CSRF 的攻击。

© www.soinside.com 2019 - 2024. All rights reserved.