websocket

  1. websocket没有提供鉴权方案,所以要自己实现
  2. 实现方案:
  • 鉴权

    • 在连接建立时,检查连接的HTTP请求头信息(比如cookies中关于用户的身份信息);
    • 在每次接收到消息时,检查连接是否已授权过,及授权是否过期;
    • 以上两点,只要答案为否,则服务端主动关闭socket连接;
  • 实现

    • websocket的增加一个自定义的channleHandle在webscoketChannleHandle前,每次判断body里面的token信息。
    • 如果不合格,则直接用channel.close();关闭连接
  1. 参考:https://www.cnblogs.com/duanxz/p/5440716.html

http

  1. 采用JWT(java web token):在网关中设置拦截器,如果是登陆请求,则发到校验token微服务中;其他请求,则判断是否携带有效token,通过了再转发到具体服务,没通过,用jwt工具类会报错,catch错误,再直接通过response.setStatusCode(HttpStatus.UNAUTHORIZED);设置http状态码,表示失败,并且调用return response.complete()提前完成响应。
  2. 实现:https://www.jianshu.com/p/604bb732ddd4
  3. 升级版:结合了jwt和 API 网关
Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐