- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我试图弄清楚将 oauth 持有者 token 传递给 websocket 端点的最佳方法是什么。
This SO answer suggests to send the token in the URL ,
但是,这种方法具有通过 URL 进行身份验证的所有缺点。讨论了安全隐患here
因此我想知道使用子协议(protocol)将 token 传递给服务器会有什么缺点?即,而不是将请求的子协议(protocol)视为常量列表。发送至少一个遵循以下语法的子协议(protocol),例如:authorization-bearer-<token>
token 最终会出现在请求 header 中。
服务器在处理子协议(protocol)时将能够通过一些自定义代码轻松找到并处理 token 。
由于许多 websocket 实现应该支持传递子协议(protocol),这应该适用于很多客户端。
最佳答案
这对我有用,我用过这个 WebSocket client library .
您需要通过 Websocket Header 发送 OAUTH token ,下面是代码,希望对您有所帮助。
ws = factory.createSocket("wss://yourcompleteendpointURL/");
ws.addHeader("Authorization", "Bearer <yourOAUTHtoken>");
ws.addHeader("Upgrade", "websocket");
ws.addHeader("Connection", "Upgrade");
ws.addHeader("Host", "<YourhostURLasabovegiveupto.com>");
ws.addHeader("Sec-WebSocket-Key", "<Somerandomkey>");
ws.addHeader("Sec-WebSocket-Version", "13");
ws.connect();
关于websocket - Websocket 的 OAuth2 身份验证 : Pass Bearer Token via Subprotocols?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36323743/
因此,我的主网页 example.com 通过 cloudflare 运行,并具有来自 Origin -> CF Edge (原始证书)的边缘证书和边缘证书 CF Edge -> Client。我通过
我试图弄清楚将 oauth 持有者 token 传递给 websocket 端点的最佳方法是什么。 This SO answer suggests to send the token in the U
我是一名优秀的程序员,十分优秀!