微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

未经授权的用户在被401错误拒绝后将多部分/数据发送到服务器事件

如何解决未经授权的用户在被401错误拒绝后将多部分/数据发送到服务器事件

我使用带有Express和Passport-JWT的Busboy从我的客户端上载文件,当使用有效的JWT令牌对客户端进行授权时,一切正常,但是在未授权客户端的情况下,尽管向客户端发送了错误代码401,但是当我在ubuntu服务器(TCPDump)中拦截到相关端口的传入通信时,我看到负载从该端口进入。尽管所有用于上传文件的监听器都位于/ uploads路由内,并且不清楚上传数据的前进方向

Router.post("/",passport.authenticate('jwt',{session:false}),(req,res)=>{
  try{
      const busboy = createBusboy(req); 
      busboy.on("uploadFinished",(uploadedFiles:any)=>{
        res.json(JSON.parse(uploadedFiles))
      })
      busboy.on("error",(err:any)=>{
        console.log(err)
      })
      req.pipe(busboy);
  }catch(e){
    res.json({e})
  }
})

解决方法

对于那些可能遇到此问题的人,我找到了根源, 在向客户端发送401错误后,连接仍处于打开状态,其余的multipart / data内容正在流向服务器,因此我可以拦截它。解决方法是在您的响应标头中写入“ connection:close”。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。