使用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!");
}
});
答案 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传送令牌请求,以生成令牌。