2013-03-04 30 views
0

我正在使用Backbone和Marionette。骨幹:如何獲得經過身份驗證的用戶數據

我有一個用戶自定義模式:

Users.User = Backbone.Model.extend({ 
    defaults: { 
     short_name: '', 
     full_name: '' 
    } 
}); 

我想輕鬆地訪問當前登錄的用戶數據在我的骨幹代碼。

我不知道是否要:

  1. 有一個單獨的模型,從用戶模型(也許Users.AuthUser ??)

OR

  1. 附加繼承Users.User模型中的一個單獨的函數返回給我一個User模型的實例,但包含登錄的用戶數據。

我也不知道如何檢索當前登錄的用戶數據。

我是否通過像http://example.com/me這樣的端點url將數據公開爲JSON?

或者某種程度上Backbone可以訪問會話數據?

回答

1

這是一般的經驗法則,如果subclass具有與父項無關的屬性/方法,那麼它應該被子類化。在我看來,這是一個例子。

骨幹(簡單地說是一個MVC JS實現)無法訪問您的會話數據。所以這需要通過REST請求來提供。

+0

你在自己的骨幹應用程序中實現相同的東西嗎? – 2013-03-05 01:01:58

+0

個人在這種情況下,正如我上面所描述的是我會做的。子類化將允許我重寫諸如'defaults'和'validate()'之類的東西。是的,我認爲'/我'是一個完全有效的資源。如果您(或其他人)下週開發移動/桌面應用程序,則您的服務實施不需要更改以適應它。 – juco 2013-03-05 08:54:57

0

模型之間不共享數據。除非您在用戶模型中需要特定功能以用於已驗證用戶,否則僅使用更多數據填充驗證用途就足夠了。

我這樣做的方法是在fetch()方法中,確保我的模型與返回當前登錄用戶的JSON的端點進行通信。

爲了定義一個不同的urlRoot認證與其他用戶,你需要有兩個獨立的模型。

P.S.,實際上我使用socket.io作爲同步協議而不是REST API,所以我只爲當前用戶與聯繫人使用不同的事件名稱進行同步。

+0

那麼你使用不同的端點URL來認證用戶?像/我爲登錄用戶和/用戶/:ID爲其他人? – 2013-03-05 00:53:50

+0

正確。實際上,我將它們視爲API角度中的不同模型,但仍然在骨幹應用程序中使用統一表示。 – 2013-03-05 04:39:53

+0

在這種情況下,當您想要獲取AuthUser時,如何設置不同的url?你是否使用了與普通fetch()不同的fetchAuth()函數? – 2013-03-05 07:09:52

相關問題