我想知道如何跟蹤backbone.js應用程序中當前登錄的用戶,頁面上的大多數視圖都需要知道用戶已登錄或現在登錄哪個用戶。實現此目的的最佳方法是什麼?Backbone.js如何跟蹤登錄的用戶狀態和應用程序結構的一般建議
我有服務器上的會話管理,但我怎麼知道哪個用戶正在我在骨幹網的應用程序處理,我如何知道,如果他退出這就是問題
而且我怎麼知道用戶已經註銷使用另一個標籤等?應該有一種通用的方式來處理這些東西,就像我們在rails中使用過濾器來管理這些東西一樣。使用什麼方法在前端實現相同。
什麼我目前做的是,當我從服務器端設置的主頁加載HTML渲染的隱藏字段#current_user_id,其中我骨幹應用程序讀取和設置像follwoing
window.MyApp =
Models: {}
Collections: {}
Views: {}
Routers: {}
currentUser: null
init: ->
@currentBusiness = $('#current_business').val()
new MyApp.Routers.Businesses
Backbone.history.start()
$(document).ready ->
MyApp.init()
變量然後我的路由器設置一個ShowView然後設置頁面
class MyApp.Routers.AppRouter extends Backbone.Router
routes:
'': 'show'
show: ->
user = new Vocallocal.Models.user id: Vocallocal.currentBusiness
Vocallocal.currentBusiness = business
new Vocallocal.Views.BusinessesIndex model: business
business.fetch()
這裏的UPS其他子視圖中的主要ShowView
class MyApp.Views.ShowView extends Backbone.View
el: '#main'
template: JST['users/home']
initialize: ->
@model.bind 'change', @render, @
@details = new Vocallocal.Views.UserDetails model: @model
@logo = new Vocallocal.Views.UserLogo model: @model
@managePhotos = new Vocallocal.Views.ManagePhotos model: @model
render: ->
console.log('change has occured')
@
做了上述代碼和安裝程序是有道理的。我正在尋找一般性建議,如果我應該對上述做任何改變。
感謝您的寶貴意見
--Abid
必須通過服務器端會話維護任何種類的安全「登錄」狀態。絕對沒有辦法在客戶端安全地做到這一點(即在瀏覽器中使用JavaScript)。 – Pointy
是的,我知道我在服務器上有會話管理,但我怎麼知道我在我的主幹應用中處理的是哪個用戶,我怎麼知道他是否註銷了這個問題 – Abid
Pointy是對的,你真的必須保護你的api服務器端。如果您使用會話管理/ cookie來完成此操作,那麼您應該能夠在客戶端讀取會話cookie,並且如果cookie不存在,那麼用戶不會登錄。 – Andy