我希望为需要注销并且前端没有启用JavaScript的用户提供Node.JS Express路由包装。 DB
是我参考我的火力地堡:使用Firebase和Node.JS注册
router.get('/logout', function(req, res) {
DB.unauth();
res.redirect(302, '/');
});
当我尝试注销这种方式已经登录了,我得到以下错误:
Error: Can't set headers after they are sent.
的documentation for Firebase.unauth()很轻,但称这是在路线(有或没有res.redirect
)会导致错误。有没有人有这个问题的建议或解决方法?
“DB”是否是对Firebase的纯引用?为了对抗下面的注释,'ref.unauth()'不会在Node中设置响应头,除非你已经包装了这个方法。 –
目前还不清楚是否为每个进入您的应用的用户请求创建了新的Firebase客户端连接。共享连接会产生安全隐患,更不用说可能的竞争条件,即多个终端用户对相同频道进行身份验证和解除身份验证。 –
是:'var DB = new Firebase('https://MY_FIREBASE.firebaseio.com');'是在我的apis.js文件顶部的声明。它不仅用于注销,还用于登录,注册等。这应该不会受到种族/安全问题的影响吗?有没有更好的方式在Node中做到这一点? –