2013-03-20 51 views
0

我正在編寫一個帶Backbone.js和require.js的web應用程序,當用戶登錄時需要存儲用戶信息以在整個應用程序中使用。目前,當用戶提交證書時,Web服務對用戶進行身份驗證並返回關於該用戶的數據。傳統上,我可以在會話中存儲該信息。我怎樣才能使用Backbone來實現這一點?backbone.js的用戶會話

回答

1

您可能想要使用HTML5 SessionStorage。看看this SessionStorageAdpater用於主幹集成。

+7

通常,引用W3Schools是不屑一顧。我想添加一個關於會話存儲的更多參考資料,MDN文檔更加冗長和詳細:https://developer.mozilla.org/en-US/docs/Web/Guide/API/DOM/Storage – 2013-10-19 12:39:39

0

通常,將驗證信息存儲在每個請求中發送到服務器的加密cookie中。這基本上是一個將登錄用戶與Web服務器身份存儲相關聯的值。

您可能對配置文件數據(即關於用戶名,生日等的元數據)更感興趣。一旦用戶登錄,當頁面加載時,通過對服務器的ajax調用獲取關於當前用戶的配置文件數據(該請求將包括auth cookie,Web框架將使用該auth cookie來查找當前登錄的用戶) 。因此,您應該在您的Web應用程序中公開一個路線,該路線返回包含應用程序對當前用戶所需的配置文件數據的json數據結構。

0

我目前正在編寫大型Backbone/Marionette應用程序。我將用戶信息(不是密碼或其他類似的信息)存儲在名爲user的模型中。然後我使用這個模型來首先通過檢查sessionid來驗證用戶。

// before every request 
if (app.Core.models.user.get('sessionid') != "") { 
    // then I run the code. Authentication can still fail on the server. 
} else { 
    // trigger the event to bring up the sign in page 
    app.vent.trigger('App:Core:Login'); 
} 

用戶登錄到應用程序後,我救我從驗證收到的app.Core.models.user模型內的信息。由於我的身份驗證不會返回完整的用戶名,因此我會進行單獨的ajax調用來檢索此信息並將該信息存儲在模型中。然後我將模型綁定到頁面的一部分,該部分會自動更新頁面標題中的用戶名。

瀏覽器自動存儲加密的cookie,因此我不必將任何此信息發送回服務器。