javascript - 我的 Firebase 网站始终只允许一名用户登录,为什么?

标签 javascript node.js firebase firebase-authentication

情况:

如果我从一台设备登录并在任何其他设备(我的手机、我 friend 的笔记本电脑、我邻居的电脑)上打开该网站,该网站会显示我已在所有这些设备上登录。

如果我注销,我在所有设备上都会显示为已注销。

实际上,我的网站一次只能由一名用户使用,这绝对毫无意义。

我一定是误用了 Firebase 身份验证。

<小时/>

代码:

router.post('/login', function(req, res, next) {
    var email = req.body.email;
    var password = req.body.password;

    // Validation
    req.checkBody('email', 'Email is required').notEmpty();
    req.checkBody('email', 'Email is not valid').isEmail();
    req.checkBody('password', 'Password is required').notEmpty();

    var errors = req.validationErrors();

    if(errors){
        res.render('users/login', {
            errors: errors
        });
    } else {

        firebase.auth().signInWithEmailAndPassword(email, password).then(authData => { 

            console.log("Authenticated user with uid:",authData);
            req.flash('success_msg', 'You have logged in');
            res.redirect("/fun/index");

        }).catch(error => { 

            var errorCode = error.code;
            var errorMessage = error.message;
            console.log("Login Failed: ", error);
            req.flash('error_msg', "Unknown user or password");
            res.redirect('/users/login');

        });
    }
});
<小时/>

问题:

我犯了什么错误以及如何纠正?

<小时/>

编辑:发现这个:Firebase NodeJS Authentication

但问题仍然没有答案。

最佳答案

如果您使用 node.js admin SDK ,您实际上处于单用户情况,并且您的服务器是单用户。通常,该单个用户是特权服务帐户,但您似乎正在使用它来同时登录各个用户。这不是管理 SDK 支持的用例。

如果您希望按用户登录您的网站,则必须使用 web SDK 在浏览器本身中进行身份验证。 。 Web SDK 代表登录用户安全地直接与 Firebase 服务进行通信。

关于javascript - 我的 Firebase 网站始终只允许一名用户登录,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41579003/

相关文章:

javascript - 获取包含div的ID以传入jeditable jquery

javascript - 在 Webstorm/Intellij 中调试 Coffeescript jasmine-node 测试

javascript - 如何将用户数据存储到node js express-session中

node.js - 共享模块的 NestJS 问题

javascript - js中如何传递变量?

node.js - 从 axios 获取对象数组并使用返回值调用另一个 axios 函数并将输出附加到第一个结果

firebase - 将应用程序提交到使用 Firebase 的 App Store

ios - 为什么我的 Firebase 项目云消息传递 iOS 配置部分是空白的?

swift - 如何在特定数据库引用中使用 FIRApp.createUserWithEmail?

javascript - 如何从命令行检查 Angular *.html 文件?