0

我正在尝试通过电子邮件/密码提供商使用 FIrebase 的简单登录。我的设置非常简单,它是 Firebase 文档的副本:

<!doctype html>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <script type='text/javascript' src='https://cdn.firebase.com/v0/firebase.js'></script>
    <script type='text/javascript' src='https://cdn.firebase.com/v0/firebase-auth-client.js'></script>
    <script>
        var chatRef = new Firebase('https://testfbang.firebaseIO-demo.com');
        var authClient = new FirebaseAuthClient(chatRef, function(error, user) {
            if (error) {
                // an error occurred while attempting login
                console.log(error);
            } else if (user) {
                // user authenticated with Firebase
                console.log('User ID: ' + user.id + ', Provider: ' + user.provider);
            } else {
                // user is logged out
                console.log('Not logged in')
            }
        });
        authClient.createUser('myemail@gmail.com', 'mypass', function(error, user) {
            if (!error) {
                console.log('User Id: ' + user.id + ', Email: ' + user.email);
            }
        });
        function dologin(){
            authClient.login('password', {
                email: 'myemail@gmail.com',
                password: 'mypass'
            });
        };
    </script>
</head>
<body>
    <button onclick="dologin()">login</button>
</body>
</html>

用户创建正确,我在我的控制台:

User Id: 2, Email: myemail@gmail.com 

但是当我点击登录按钮时,我得到:

Not logged in

响应由一个“token”字符串和一个带有正确 id、email、provider 等的“user”json 字符串组成。

响应似乎是正确的,不知何故用户对象没有被填充。

我尝试使用错误的电子邮件或密码,并收到相关的错误消息。

我错过了什么吗?

我还注意到对身份验证服务的调用是这样的:

https://auth.firebase.com/auth/firebase?&firebase=testfbang&email=myemail%40gmail.com&password=mypass5&callback=FirebaseAuthClient._callbacks._firebaseXDR136717460560112

我不是安全专家,但网址上的明文密码不是主要的安全问题吗?

感谢您的任何意见。

安德烈亚斯

4

1 回答 1

4

上述代码段中的代码是正确的,但所使用的 Firebase 的地址/URL 不正确。所有“生产”用户 Firebase 都使用域firebaseIO.com,但上面的代码使用firebaseIO-demo.com域,该域已禁用安全性,仅用于测试目的。该域上的 Firebase 可以由任何人创建并为方便起见传递,但不能通过身份验证或绑定到 Firebase 帐户。

关于明文密码,所有 Firebase 简单登录请求都强制使用 HTTPS,因此该密码实际上从未通过网络以明文形式发送。

于 2013-04-28T20:23:25.387 回答