使用Backfire时如何使用自定义登录凭据对用户进行身份验证?

时间:2014-05-26 15:21:14

标签: backbone.js firebase firebase-security

使用Backbone包装器时,通过此处描述的自定义登录流程(https://www.firebase.com/docs/security/custom-login.html)对用户进行身份验证的最佳方法是什么?

请看下面的集合。

define([
    'jquery',
    'underscore',
    'backbone',
    'libs/firebase/firebase.min',
    'libs/firebase/backbone-firebase.min'
], function($, _, Backbone, Firebase, Backfire){

    return Backbone.Firebase.Collection.extend({

        initialize: function(){
            var self = this;
            self.firebase = "https://mybackboneapp.firebaseio.com/notifications/" + window.User.id;
        }
    });
});

当我使用下面描述的方法时,它可以正常工作。

var dataRef = new Firebase("https://mybackboneapp.firebaseio.com/notifications/" + window.User.id);
// Log me in.
dataRef.auth(window.User.firebase_token, function(error) {
  if(error) {
    console.log("Login Failed!", error);
  } else {
    console.log("Login Succeeded!");
  }
});

2 个答案:

答案 0 :(得分:2)

假设您已经生成了有效的Firebase身份验证令牌,我建议您创建一个新的Firebase引用,对其进行身份验证,然后将其传递给BackFire。

Backbone.Firebase下载的每个Backbone部分在创建时接受 字符串一个Firebase引用。如果您传递字符串,就像在上面的示例中一样,那么将通过new Firebase(...)为您创建一个新的Firebase引用,但是传入您自己创建的引用将允许您直接调用{{1}在它上面。

例如:

.auth(<token>)

答案 1 :(得分:0)

使用one of the helper libraries完成自定义登录。由于这会使用您的秘密来生成令牌,因此不会在客户端进行(即通过Backbone MVVM lib或Backfire)。

您可以设置服务器进程(例如node.js)并在那里运行自定义令牌生成器,然后通过HTTP连接或通过Firebase传送令牌请求,以生成令牌。