在 WebSocket 连接建立之前进行身份验证

embedded/2024/12/22 11:23:53/

要在 WebSocket 连接建立之前进行身份验证,可以采用以下常见方法:

  1. 基于 token 的鉴权:客户端在连接请求中携带 token,服务器端接收后验证 token 的合法性。例如,使用 ws 库时,可以在建立 WebSocket 连接时设置请求头:
        const socket = new WebSocket('ws://localhost:3000', { headers: { 'ec-websocket-protocol': 'your_token' } });

    服务器端接收连接请求后,从请求头中获取 token 并进行验证:

        server.on('connection', (socket, req) => {const token = req.headers('sec-websocket-protocol');// 验证 token 的合法性if (isValidToken(token)) { // 鉴权通过,进行后续操作socket.send('鉴权通过,欢迎连接!');} else {// 鉴权失败,关闭连接socket.close();}});

  2. 基于签名的鉴权:客户端在连接时发送带有签名的信息,服务器验证签名的合法性。首先定义生成签名的方法,然后在客户端发送请求时携带签名:

http://www.ppmy.cn/embedded/59124.html

相关文章

.net开发:NPOI生成excel文件到磁盘

源码实测可用 使用.net工具包NPOI,生成excel文件到本地磁盘。 实际项目中可以指定路径到服务器,把生成的文件存放到服务器指定目录。 controller层 [HttpPost("ExportExcel")]public void ExportExcel(){_TestService.ExportToExcel();} serv…

Python字符串基础与高级操作

在Python中,字符串是不可变的数据类型,用于存储一系列的字符。它们可以被创建、访问、操作和格式化,但一旦创建,其内容就不能改变。下面是一篇关于Python字符串技术的详细讲解,包括创建、访问、更新、转义、运算符、格…

什么是Web3D?国内有哪些公司可以做?

Web3D 是一种基于网页的三维立体虚拟现实技术。利用计算机图形学、图像处理、人机交互等技术,将现实世界中的物体、场景或概念以三维立体的方式呈现在网页里。Web3D 技术可以让用户在任何时间、任何地点,通过互联网与虚拟世界进行互动,获得身…

SpringBoot整合 Kaptcha 验证码

文章目录 1 Kaptcha 验证码1.1 引言1.2 Kaptcha1.2.1 pom.xml1.2.2 配置类1.2.2.1 Redis配置类RedisConfig1.2.2.2 验证码配置类KaptchaConfig 1.2.3 验证码控制层1.2.4 登录控制层 1 Kaptcha 验证码 1.1 引言 为防止验证系统被暴力破解,很多系统都增加了验证码效…

大模型/NLP/算法面试题总结8——预训练模型是什么?微调的方法?

1、预训练模型 预训练模型(Pre-trained Model)是在大规模数据集上提前训练好的深度学习模型,这些模型可以被用于多种不同的任务中,而不仅仅是它们在原始训练数据上所学习的特定任务。预训练模型的核心思想是利用在大量数据上学习…

05.CSS 缓动变量 首字下沉 放大缩小动画

CSS 缓动变量 在设计中,大多数 Web 开发人员对于 transition-timing-function 的大多数用例使用内置的 ease、ease-in、ease-out 或 ease-in-out 函数。虽然这些函数适合日常使用,但还有一个功能更强大但令人生畏的选项可用,即 bezier-curve() 函数。 使用 bezier-curve(),我…

封装了一个仿照抖音效果的iOS评论弹窗

需求背景 开发一个类似抖音评论弹窗交互效果的弹窗,支持滑动消失, 滑动查看评论 效果如下图 思路 创建一个视图,该视图上面放置一个tableView, 该视图上添加一个滑动手势,同时设置代理,实现代理方法 (BOOL)gestur…

健康云足迹:在iCloud中珍藏您的个人健康检查记录

健康云足迹:在iCloud中珍藏您的个人健康检查记录 随着健康意识的提高,个人健康数据管理变得越来越重要。iCloud作为苹果公司提供的云服务,不仅能够同步您的联系人、日历和照片,还能成为您个人健康检查记录的安全港湾。本文将详细…