2012-07-31 55 views
1

处理,我需要一个非常简单的登录系统与Backbone.js的登录在Backbone.js的

我的工作流程的Web应用程序: 应用开始 - > LoginView - >当登录 - >应用

这里我的解决方案我能做些什么更好?

登录状态型号:

window.LoginStatus = Backbone.Model.extend({ 
defaults: { 
    loggedIn: false, 
    userId: null, 
    username: null, 
    error: "An Error Message!" 
}, 

initialize: function() { 
    _.bindAll(this, 'getSession', 'setStorage'); 
}, 

getSession: function (username, password) { 
    var tmpThis = this; 
    $.getJSON('http://requestURL.de/getSession.php?username=' + username + '&password=' + password, function(data) { 
     if (data != null) { 
      tmpThis.setStorage(data.id, data.username); 
      $.mobile.changePage("#home"); 
     }         
    }); 
}, 
setStorage: function(userId, username) { 
    localStorage.setItem("userId", userId); 
    localStorage.setItem("username", username); 
    this.set({ "loggedIn" : true}); 
} 
}); 

这里是我的登陆查看:

window.LoginView = Backbone.View.extend({ 

el: $("#login"), 

initialize:function() { 
    this.render(); 
}, 

events: { 
    "click input[type=submit]": "onSubmit" 
}, 

onSubmit: function(event) { 
     var username = $(this.el).find("#user-username").val(), 
      password = $(this.el).find("#user-password").val(); 

     this.model.getSession(username, password); 

     return false; 
}, 
render:function() { 
    if (this.model.get("loggedIn")) { 
     var template = _.template($("#login_template").html(), {}); 
    } else { 
     var template = _.template($("#login_template").html(), { "error" : this.model.get("error") }); 
    } 
    $(this.el).html(template); 
} 

}); 
+0

这对您的应用程序可能并不重要,但这种方法非常不安全。 – 2012-07-31 21:38:31

+0

如果您正在寻找有关您的代码的一般反馈,那么http://codereview.stackexchange.com/可能更合适。 – 2012-07-31 21:46:05

回答

1

我给你的建议是使骨干应用程序之外,只有登录成功后,登录过程让他们访问“单页面应用程序”