保护密码客户端Firebase

时间:2016-02-19 16:09:16

标签: javascript html security authentication firebase

我目前正在关注来自Firebase的Email & Password Authentication tutorial

以下是使用电子邮件和密码登录的基本代码:

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithPassword({
  email    : "bobtony@firebase.com",
  password : "correcthorsebatterystaple"
}, function(error, authData) {
  if (error) {
    console.log("Login Failed!", error);
  } else {
    console.log("Authenticated successfully with payload:", authData);
  }
});

对于我在我的网站上浏览的每个页面,我是否需要使用电子邮件和密码凭据重新进行身份验证才能访问数据库?

如果是这样,我如何通过网页传递emailpassword,而不会使密码容易受到曝光。

我对安全性非常陌生,并且不想遇到任何安全问题或数据泄漏,因此我依赖第三方服务。

1 个答案:

答案 0 :(得分:2)

当您致电时,Firebase会在浏览器中保持身份验证状态:

var ref = new Firebase("https://<YOUR-FIREBASE-APP>.firebaseio.com");
ref.authWithPassword({
  email    : "bobtony@firebase.com",
  password : "correcthorsebatterystaple"
}, function(error, authData) {
  if (error) {
    console.error("Login Failed!", error);
  } 
});

要在页面重新加载时检索持久身份验证状态,您可以使用onAuth()方法:

// this will fire even if not authenticated and authData
// will be null
ref.onAuth(function(authData) {
  if (authData) {
    console.log(authData.uid);
  }
});

就安全性而言,Firebase需要HTTPS连接,因此所有电子邮件和密码都通过网络进行加密。