2012-07-31 51 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

我給你的建議是使骨幹應用程序之外,只有登錄成功後,登錄過程讓他們訪問「單頁面應用程序」