【发布时间】:2021-10-03 15:13:33
【问题描述】:
✨大家好!✨
一般问题:
我有一个网络应用程序,其中包含大约 50 张图像,在用户登录网站之前应该无法访问这些图像。我怀疑这应该是一个简单的答案,有很多网站也需要这种基本保护。也许我不知道在这里谷歌的正确词,但我遇到了一些麻烦。任何帮助表示赞赏。
应用详情:
我的网络应用程序内置在 typescript react 中,带有 node.js/express/mongoDB 后端。相当典型的东西。
我尝试过的:
到目前为止,我最好的想法是将它们上传到托管在 heroku 上的后端服务器上的公共文件夹中。然后,我使用身份验证中间件将图像保护到任何包含“/images/”的url。这部分有效。当我使用身份验证标头从邮递员调用 api 时,我能够看到图像。但是我想不出一种在我的反应网络应用程序中显示该图像的方法。这是我使用的基本调用。
fetch(url,
{
headers: {
Authorization:token,
},
}
);
然后当我尝试复制它时,实际响应只是一个空对象
{}
但是当我控制台记录纯响应时,我也会得到这个,某种可读流:
来自关注related question
我想出了以下内容:(通常包含在 asyc 函数中)
const image = await fetch(url,{headers:{ Authorization:token}});
const theBlob = await image.blob();
console.log(URL.createObjectURL(theBlob));
这给了我链接:http://localhost:3000/b299feb8-6ee2-433d-bf05-05bce01516b3,它只显示一个空白页。
非常感谢任何帮助!谢谢! ????
【问题讨论】:
标签: node.js reactjs image heroku frontend