在WebSocket中,如何携带用户的验证信息
一、在OnMessage中进行验证
客户端在连接到服务器后,客户端通过发送消息,服务器端在OnMessage方法中,进行信息验证,这种方式需要将用户身份验证及接收用户消息进行混合处理,增加代码复杂度;并且,客户端只要知道请求地址,都可以随意连接服务器,并占用服务器连接数。
二、将Token或验证信息通过路径或请求参数进行添加
使用这种方式,需要将验证信息加入到请求路径或者请求参数中,如:ws://127.0.0.1:8080/websocket/message?token=dsfsdfdsf.sdfasdfsdflkj,安全性较差,需要对验证信息进行加密处理
三、通过Header中的Sec-WebSocket-Protocol进行传输
使用该种方式,需要注意,在响应服务器请求时,需要将该参数原封不动的返回给客户端,否则将报错
若依框架集成WebSocket
1、下载代码并添加到若依的framework包中
2、在启动类中添加@EnableWebSocket
3、修改TokenService.java中的getToken方法,添加获取websocket Header方法
private String getToken(HttpServletRequest request)
{
String token = request.getHeader(header);
if(StringUtils.isBlank(token)) {
token = request.getHeader("Sec-Websocket-Proto