【长链接】websocket或者tcp长连接怎么实现登录验证?

首先要知道  WSS(Web Socket Secure)是WebSocket的加密版本。

其中WSS表示在TLS之上的WebSocket。WS一般默认是80端口,而WSS默认是443端口,大多数网站用的就是80和433端口。WS和WSS的体现形式分别是TCP+WS AS WS ,TCP+TLS+WS AS WS。服务器网址就是 URL。

WS协议和WSS协议两个均是WebSocket协议的SCHEM,两者一个是非安全的,一个是安全的。也是统一的资源标志符。就好比HTTP协议和HTTPS协议的差别。非安全的没有证书,安全的需要SSL证书。(SSL是Netscape所研发,用来保障网络中数据传输的安全性,主要是运用数据加密的技术,能够避免数据在传输过程被不被窃取或者监听。)

WS和WSS的体现形式分别是TCP+WS AS WSTCP+TLS+WS AS WS。服务器网址就是 URL

  • wss 路径参数中加上 Token,优点是在 @OnOpen 方法中就可以进行 Token 认证与 Token 和 Session 的成对存储,简单方便,缺点是认证时不够安全;
  • wss 路径参数中不加 Token,而是在客户端的 @OnOpen 方法中调用 session.getBasicRemote().sendText(String) 来发送验证信息,在服务器端的 @OnMessage 中进行 Token 认证与 Token 和 Session 的成对存储,优点是认证时较安全,缺点是 @OnMessage 中混杂认证与信息传输,方法不再那么纯,而且频繁传输小数据代码性能会不如第一种;

相比之下,我选择了第一种,因为代码逻辑更清晰,而不足的安全方面,我的 WebSocket 仅仅作为服务器新信息通知,具体的信息获取需要使用其他 API,这些 API 都足够安全,一定程度弥补了 WebSocket 认证的不安全性。

实战思路1: (简单方案)

可以在ws的url里加参数,比如: wss://127.0.0.1/websocket?ser=abcdef&password=abcdef

WebSocket服务器在握手的时候可以得到参数里的信息,认证成功后握手成功建立连接,不成功则关闭连接。

实战思路2:(比上边更好一点)

1、首先通过普通的http restful 请求服务器登录,如果通过返回token。
2、拿token去请求接口,校验token,校验通过,简历长连接

  用户认证信息放在请求头部  传递token  或者 进行 md5 加密缓存比对 

可以在ws的url里加参数,比如: wss://127.0.0.1/websocket?token=abcdef-abcdef-abcdef-abcdef

WebSocket服务器在握手的时候可以得到参数里的信息,认证成功后握手成功建立连接,不成功则关闭连接。

相关推荐

  1. TCP连接与短的区别

    2024-04-27 06:14:03       18 阅读
  2. 使用websocket建立实现用户点对点即时通讯

    2024-04-27 06:14:03       20 阅读
  3. TCP怎么处理连接、短连接

    2024-04-27 06:14:03       30 阅读
  4. nginx配置tcp连接实现集群

    2024-04-27 06:14:03       14 阅读
  5. 【网络】TCP连接是如何实现

    2024-04-27 06:14:03       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-04-27 06:14:03       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-04-27 06:14:03       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-04-27 06:14:03       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-04-27 06:14:03       20 阅读

热门阅读

  1. Nginx安装withSSL模块

    2024-04-27 06:14:03       17 阅读
  2. Socket套接字(TCP流)篇

    2024-04-27 06:14:03       14 阅读
  3. C++ std::variant 总结

    2024-04-27 06:14:03       14 阅读
  4. 新媒体矩阵号是怎么做的?

    2024-04-27 06:14:03       15 阅读
  5. flask服务中如何request获取请求的headers信息

    2024-04-27 06:14:03       13 阅读
  6. Python Web开发框架详解:Django与Flask的比较与实践

    2024-04-27 06:14:03       17 阅读
  7. 回归与聚类——模型保存与加载(五)

    2024-04-27 06:14:03       12 阅读
  8. 基于Hadoop的电商数据分析系统设计与实现

    2024-04-27 06:14:03       11 阅读