如何解决未经授权的用户在被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 举报,一经查实,本站将立刻删除。