html - Websocket 身份验证

标签 html authentication websocket

我正在运行一个 websocket 服务器并问我自己,如果计划的话,客户端身份验证将在未来通过握手完成......也许草稿 xxxx :)

你有资料吗?我听说使用 draft07 可以将 session ID 发送到服务器,所以这可能有助于对客户端进行身份验证...

我在 atm 上做的是最多等待 10 秒,直到客户端向我发送一条包含登录标题、用户名和密码的消息。但我认为这不是“THE”解决方案。你们是怎么做到的?

最佳答案

WebSockets 协议(protocol)允许在握手期间交换标准的 HTTP 身份验证 header 。如果您有一个 WebSockets 服务器作为模块插入现有的 Web 服务器,那么 Web 服务器中的现有身份验证应该已经可以工作了。否则,如果您有一个独立的 WebSockets 服务器,那么您可能需要添加身份验证支持。

更新

正如@Jon 指出的那样,与普通的 HTTP/XHR 请求不同,浏览器 API 不允许您为 WebSocket 连接设置任意的“X-*” header 。您可以设置的唯一 header 值是协议(protocol)。这很不幸。一种常见的解决方案是使用基于票据的系统,该系统依赖于现有的 HTTP 机制进行授权/认证,然后将此票据与 websocket 连接一起传递并以这种方式进行验证:https://devcenter.heroku.com/articles/websocket-security

关于html - Websocket 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6169842/

相关文章:

go - AWS API Gateway WebSockets [POST] @connections返回404未找到

javascript - dir=auto 属性在应用于 div 标签时不起作用

html - 将缓存 list 添加到 Meteor 应用程序的简单方法?

html - 在div中制作的背景图像使div透明

iphone - ASIHttprequest 用于登录认证

java - @CustomFormAuthenticationMechanismDefinition 注释缺失

java - Atmosphere 套接字已建立,但没有接收/发送数据

javascript - Bootstrap - 同时切换导航和 Accordion 面板

python - MSSQL 连接字符串 - 使用另一组凭据的 Windows 身份验证

javascript - 使用 WebSocket 上传大文件