这个问题很古怪。我想知道是否有人对这里可能发生的事情有任何了解。
在浏览器中,我们这样做:
firebase.auth().onIdTokenChanged(user => {
if (user && user.emailVerified) {
return user.getIdToken().then(idToken => {
document.cookie = '__session=' + idToken + ';max-age=' + (idToken ? 3600 : 0);
});
} else {
// clear the __session cookie
document.cookie = '__session=';
}
});
这里的想法是,只要令牌更改,我们都会更新cookie,并在注销时清除cookie。
一个用户将尝试使用GET请求访问文件(这就是为什么我们使用cookie的原因,因为它不是api调用,而是单击链接并在新窗口中打开以显示/下载文件),而__session值将是其令牌ID,就好了。
第二个用户将要求提供相同的文件,并且该请求将完全没有cookie。
我唯一的想法是,如果一段时间未重新认证用户,firebase可能会丢弃__session cookie,但发送__session cookie的用户没有问题,以及req.cookies的用户可能在几周内没有重新认证。空的。
我已经在浏览器中检查过cookie,它肯定在那里。
有人知道怎么回事吗?