【发布时间】:2015-07-22 03:15:09
【问题描述】:
我想为需要注销但未在前端启用 JavaScript 的用户提供 Node.JS Express 路由包装器。 DB 是我对 Firebase 的引用:
router.get('/logout', function(req, res) {
DB.unauth();
res.redirect(302, '/');
});
当我尝试以这种方式登录后退出时,我收到以下错误:
错误:发送后无法设置标头。
documentation for Firebase.unauth() 很轻,但是在路由中调用它(有或没有res.redirect)会导致错误。有人对此问题有建议或解决方法吗?
【问题讨论】:
-
DB在这里纯粹是对 Firebase 的引用吗?为了应对下面的 cmets,ref.unauth()不会在 Node 中设置响应标头,除非您已经包装了该方法。 -
目前还不清楚是否正在为进入您应用的每个用户请求创建新的 Firebase 客户端连接。共享连接会产生安全隐患,更不用说可能存在多个最终用户对同一通道进行身份验证和取消身份验证的竞争条件。
-
是的:
var DB = new Firebase('https://MY_FIREBASE.firebaseio.com');是我的 apis.js 文件顶部的声明。它不仅用于注销,还用于登录、注册等。这不应该受到种族/安全问题的影响吗?有没有更好的方法在 Node 中做到这一点? -
我很乐意提供帮助 - 请通过 firebase.com 的 rob 与我联系,我们可以具体讨论您想要做什么以及如何最好地做到这一点。 =)
标签: node.js firebase logout firebase-authentication