一些用户未定义Firebase __session cookie

时间:2018-11-21 22:42:49

标签: javascript firebase cookies firebase-authentication

这个问题很古怪。我想知道是否有人对这里可能发生的事情有任何了解。

在浏览器中,我们这样做:

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,它肯定在那里。

有人知道怎么回事吗?

0 个答案:

没有答案