我们正在使用Web服务器和PC客户端构建Web服务。客户端程序连接到Web服务器并通过websockets发送一些数据..客户端没有用户交互,没有密码或登录...它只是发送一些与客户帐户相关的数据...
我们关注的是我们应该使用JWT来防止客户端程序或流量劫持......?
我们阅读的所有文章都与浏览器相关<>网络服务器但不是程序<>网络服务器......
感谢您的任何想法!
答案 0 :(得分:0)
这是正确的,为了避免其他客户向您的 websocket服务器提出请求,您可以使用JWT。你没有提到你使用的技术。这是一个使用express和socket.io的例子。
1)客户端在查询参数上发送 jwt
2)服务器验证 jwt 签名。
import express from "express";
import socket from "socket.io";
import http from 'http';
const server = http.createServer(app);
const io = socket(server);
io.use( async (socket, next) => {
if(!socket.handshake.query)
next(new Error('Not Authenticated'));
const token = socket.handshake.query.token;
const encUsrId = socket.handshake.query.pcClientToken; //maybe
try{
let hasErrors;
if(token)
hasErrors = await jwt.validateJSON(token); //validate with your own function.
next();
}
catch(ex){
next(new Error('Not a valid JWT'));
}
});