websocket简单鉴权和http微服务鉴权方案
websocketwebsocket没有提供鉴权方案,所以要自己实现实现方案:鉴权在连接建立时,检查连接的HTTP请求头信息(比如cookies中关于用户的身份信息);在每次接收到消息时,检查连接是否已授权过,及授权是否过期;以上两点,只要答案为否,则服务端主动关闭socket连接;实现websocket的增加一个自定义的channleHandle在webscok...
·
websocket
- websocket没有提供鉴权方案,所以要自己实现
- 实现方案:
-
鉴权
- 在连接建立时,检查连接的HTTP请求头信息(比如cookies中关于用户的身份信息);
- 在每次接收到消息时,检查连接是否已授权过,及授权是否过期;
- 以上两点,只要答案为否,则服务端主动关闭socket连接;
-
实现
- websocket的增加一个自定义的channleHandle在webscoketChannleHandle前,每次判断body里面的token信息。
- 如果不合格,则直接用channel.close();关闭连接
- 参考:https://www.cnblogs.com/duanxz/p/5440716.html
http
- 采用JWT(java web token):在网关中设置拦截器,如果是登陆请求,则发到校验token微服务中;其他请求,则判断是否携带有效token,通过了再转发到具体服务,没通过,用jwt工具类会报错,catch错误,再直接通过response.setStatusCode(HttpStatus.UNAUTHORIZED);设置http状态码,表示失败,并且调用return response.complete()提前完成响应。
- 实现:https://www.jianshu.com/p/604bb732ddd4
- 升级版:结合了jwt和 API 网关
更多推荐
已为社区贡献2条内容
所有评论(0)