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



我使用带有Express和Passport JWT的Busboy从我的客户端上传文件,当客户端被授权使用有效的JWT令牌时,一切都很好,但在客户端未被授权的情况下,尽管错误代码401被发送到客户端,但当我拦截到我的ubuntu服务器(TCPDump(中相关端口的通信时,我看到负载从该端口进入。尽管上传该文件的所有侦听器都在上传路线内,而且上传的数据指向的位置尚不清楚

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错误响应后,连接仍然打开,其余的多部分/数据内容正在流向服务器,因此我可以拦截它。解决方案是写一个";连接:关闭";到您的响应标头。

最新更新