浏览器随机删除Cookie 从快递服务器中获取资产浏览网站到期问题?

问题描述

我正在使用cookie来管理React应用程序中的身份验证。在两种情况下,浏览器Cookie会被客户端删除。可能是什么原因造成的?

编辑:这似乎仅在Firefox Developer Edition中发生。它可以在Firefox,Chrome和Safari中正常运行。不确定他们在做什么不同的事情...

从快递服务器中获取资产

(1)用户单击一个链接,该链接触发获取操作,以从快速服务器下载文件。我下载了文件。当我再次单击相同的链接时,该cookie从浏览器中消失,并再次导致下载失败。

客户获取资产

async function promptDownload(fetchResponse,filename) {
  const blob = await fetchResponse.blob();
  const fileURL = URL.createObjectURL(blob);
  const a = document.createElement('a');
  a.href = fileURL;
  a.target = '_blank';
  a.download = filename;
  a.click();
  URL.revokeObjectURL(fileURL);
}

export const fetchAsset = async (url,filename,jwt) => {
  try {
    var fetchResponse = await fetch(url,{
      headers: {
        'Authorization': `Bearer ${jwt}`,},credentials: 'include',});
  } catch (error) {
    console.error(error);
    return;
  }
  promptDownload(fetchResponse,filename);
};

nodejs服务资产:

app.get("/assets/:filename",(req,res) => {
  res.download(file);
});

浏览网站(到期问题?)

(2)浏览器在用户浏览网站时随机删除cookie。我将Cookie的有效期限设置为15分钟-我已经测试了几次,但是在这15分钟之前,它会不时地删除Cookie。仅当用户更改路线时,cookie才会被删除(我正在进行异步调用,以在每次路线更改时获取新的cookie)。

除了过期和关闭浏览器之外,还有哪些常见的实例可能会导致Cookie被删除

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)